본문 바로가기

728x90
반응형

분류 전체보기

(222)
Spring cloud circuit breaker fallbackUri 사용 서비스 하나를 (fallback 날릴) 만들어서 gateway instance로 추가해준다. application.yml spring: application: name: scg-gateway cloud: gateway: routes: - id: test-svc uri: lb://TEST-SVC predicates: - Path=/testSvc/** filters: - name: CircuitBreaker args: name: testCircuitBreaker fallbackUri: forward:/fallback resilience4j.circuitbreaker: configs: default: failureRateThreshold: 50 slowCallRateThreshold: 100 slowCallD..
Spring cloud circuit breaker fallback 메소드 테스트 Spring cloud Circuit Breaker Config빈 등록 방법은 아래 포스팅을 참고 https://tweety1121.tistory.com/entry/Spring-circuitbreaker-actuator-health-check-%EC%84%A4%EC%A0%95 Spring circuitbreaker actuator health check 설정 Gradle implementation "org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j" implementation 'org.springframework.boot:spring-boot-starter-actuator' CircuitBreaker Con..
Spring circuitbreaker actuator health check 설정 Gradle implementation "org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j" implementation 'org.springframework.boot:spring-boot-starter-actuator' CircuitBreaker Configuration 빈 등록 @Bean public Customizer defaultCustomizer() { return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id) .circuitBreakerConfig(CircuitBreakerConfig.ofDefaults()) ..
Spring Cloud Gateway Global Error Handler ErrorWebExceptionHandler spring-mvc에서는 ErrorController, AbstractErrorController, BasicErrorController가 기본적으로 제공되므로 에러를 핸들링 할 수 있다. Spring-cloud는 webflux 기반이므로 mvc에서 사용하던 에러핸들러를 사용할 수 없다. @ExceptionHandler 역시 사용이 불가능하다. webflux에서 제공하는 에러핸들러는 ErrorWebExceptionHandler인터페이스와 AbstractErrorWebExceptionHandler, DefaultErrorWebExceptionHandler이다. ErrorExceptionConfig.java @Configuration @RequiredArgsCon..
Spring @Valid 어노테이션으로 파라미터 검증하기 Gradle 추가 implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation' ProductInfo.java package com.heypli.productsvc.domain.request; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; import lombok.ToString; import javax.validation.constraints.NotNull; @Getter @Setter @ToString @JsonIgnoreProperties(ignoreUnknown..
Spring boot + mariadb + mybatis + hikaricp 설정 Gradle 설정 implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.2.2' implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.0.3' implementation 'org.springframework.boot:spring-boot-starter-jdbc' application.properties spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.hikari.jdbc-url=jdbc:m..
JAVA 직렬화란? 직렬화 사용이유 JAVA 직렬화란? JAVA시스템 내부에서 사용되는 데이터나 객체들을 외부 자바 시스템에서도 사용할 수 있도록 byte형태로 변환하는 기술로 바이트로 변환된 데이터를 다시 객체로 변환하는 역직렬화도 포함된다. 대부분 OS 프로세스를 구현할 때 서로 다른 가상 메모리공간에 있는 Object type의 참조값 데이터 인스턴스는 전달 할 수 없다. 전달한다고 해도 서로 다른 메모리 공간에서는 무의미하다. 서로 다른 memory공간사이에서 데이터를 전달할 때 주소값이 아닌 직렬화된 객체 데이터를 이용할 수 있다.(이것이 직렬화) JAVA시스템간에 존재하는 것으로 Data type이 자동으로 맞춰진다. example) JAVA안에서 객체 안에 객체가 존재할 수 있는데 Parent객체 안에 Child객체가 있을 때..
Docker mariadb 설치 Docker image pull docker pull mariadb Docker Run docker container run -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=1234 \ -v /Users/Shared/data/mariadb:/var/lib/mysql \ --name mariadb mariadb docker volume을 잡고 올린다. /Users/Shared가 MacOS에서 설정되어 있는 경로로 데이터를 저장할 경로를 잡으면 된다. Docker Mariadb 설정 복사 docker cp mariadb:/etc/mysql/conf.d /Users/Shared/data/conf.d docker stop mariadb docker rm mariadb 설정을 local로..

728x90
반응형