일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring Cloud Netfilx Eureka
- Spring Boot Actuator
- java 정렬
- 스레드
- MSA
- Serial GC
- Action Pattern
- zipkin
- The law of Demeter
- 알고리즘
- JPA
- 멀티스레드
- saga pattern
- spring batch
- TypeScript
- spring cloud
- Resilinece4j
- 배치
- Parallel Old GC
- 스프링 배치
- 타입스크립트
- 디자인 패턴
- 키클락
- 사가 패턴
- 디자인패턴
- thread
- Java
- 체인 패턴
- 생산자 소비자 패턴
- Transaction Pattern
- Today
- Total
목록MSA (9)
PSD( Private-Self-Development )
수업을 다 듣고 나서MSA 간 데이터 동기화 프로레스 중 에러가 발생한 경우 (트랜젝션 처리가 필요) 의 처리에 대해 궁금하여 공부해 보았다. 사가 패턴??MSA 서비스 간, 이벤트를 주고 받아 특정 MS에서 작업이 실패하면이전 MS들에게 보상 트랜젝션을 발생 시켜 롤백 처리를 진행하여 원자성을 보장하는 것이전에 DB에서 트랜젝션을 관리하는것과는 달리, application 에서 관리한다. 사가 패턴의 종류 Choreography based SAGA pattern각자의 MSA 들이 각자의 보상 트랜젝션을 가지고실패한 경우, 이전 MS 에 보상 트랜젝션을 발생 시키고,이전 MS 에서는 그 이전 MS 의 보상 트랜젝션을 발생 시키는 것 EX)A -> B -> C 순차적 진행중 C 에서 문제 발생 시,C ->..
로그 확인용분산된 MS 들의 로그를하나의 WEB UI를 통하여 시각화하여 확인 가능 하다. MicrometerSpring boot 2부터 내장 사용 가능actuator를 사용하여 metric 확인 가능 prometheus 등 다양한 모니터링 시스템 지원metric시간이 지남에 따라 변화하는 데이터를 의미메모리, CPU, 스레드 사용률 등등시간에 따른 추이를 추적할 가치가 있는 데이터Timer짧은 지연 시간, 이벤트의 사용 빈토 측정시계열로 이벤트의 시간, 호출 빈도등을 제공 @Timed 제공 사용 1. 디펜던시 추가 io.micrometer micrometer-registry-prometheus 2. yml 파일 수정 endpoints: web: exposure: include..
MSA 에서하나의 요청에 USER => ORDER => Category 으로 MS 간 작업중 User 는 정상 처리,Order 에서 오류가 발생한 경우의 장애 처리를 공부해보자! 기본적으로는 정상 동작 하는 서비스의 결과 만 제공하고, 오류 발생한 서비스의 결과는 제외하여 제공하는 식인듯... 장애 처리 - CircuitBreaker( Resilinece4j )장애가 발생하는 서비스의 반복적인 호출이 되지 못하게 차단 특정 서비스가 정상적으로 동작하지 않는 경우 다른 기능으로 대체 수행 => 장애 회피circuitBreaker 가 open : 실패하여 circuitBreaker 가 개입한다는 뜻circuitBreaker 가 close : 정상 동작하여 circuitBreaker 가 개..
Kafka? rabbit MQ 와 같은 메시지 브로커 분산형 스트리밍 플랫폼 대용량의 데이터를 빠르게 처리 가능한 메시징 시스템 초당 100k+ 이상의 이벤트 처리 Pub/Sub, Topic에 메시지 전달 Ack를 기다리지 않고 전달 가능 생산자 중심 Kafka 의 구성 Zookeeper 메타데이터(Broker Id, Controller Id 등) 저장 브로커들을 중재한다 어떠한 브로커 가 있는지 역할은 무엇인지 에 대한 정보를 보통 3개 이상의 Broker 로 클러스터 구성 1대는 Controller 기능 수행 Contoller 각 Broker 에게 담담 파티션 할당 Broker 정상 동작 모니터링 관리 사용 kafka 설치 Zookeeper 구동 $KAFKA_HOME/bin/zookeeper-serv..
Feign Client 란? MSA 서버에서 다른 서버로 REST 통신을 하기 위한 추상화 된 인터페이스 기존 Rest Template 방식 보다 직관적 이고 간단하다. 단, 기존 Rest Template 방식 보다 양 MSA 서버간의 구조를 확실히 알아야 하는 단점도 있다. 사용 1. 디펜던시 추가 org.springframework.cloud spring-cloud-starter-openfeign 2. 어노테이션 추가 @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class UserServiceApplication { public static void main(String[] args) { SpringApplicati..
Configuration Service 각각의 Micro Service 가 가지고 있어야 할 구성 정보 파일(yml)의 정보를 대신해서 가지고 관리하는 서비스 기존 방식과의 차이점 기존 방법 구성 정보 파일(yml) 수정 시, 재기동 및 재빌드 필요 각각의 msa 가 yml 파일을 가지고 있어, 내용 중복 및 분산되어 있음 신규 방법 하나의 서버에서 모든 msa 의 yml 파일을 관리 yml 수정 시 재기동 및 재빌드 불필요 구현 1. 디펜던시 추가 org.springframework.cloud spring-cloud-config-server 2. 어노테이션 추가 @SpringBootApplication @EnableConfigServer public class ConfigServiceApplicatio..

API Gateway 란? 사용자가 설정한 라우팅 설정에 따라서 각각의 엔드포인트에 요청을 대신 보내주고 응답을 대신 받아서 이를 전달하는 프록시 역할을 수행한다. MSA 에 해당 구조가 사용되는 이유는 클라이언트에서 각각의 micro service 를 직접 호출하게 되면 micro service 에 수정사항이 생기면 각각의 클라이언트가 모두 수정되야 하므로 이를 방지하기 위해 사용한다. API Gateway 의 기능 인증 및 권한 부여 서비스 검색 통합 응답 캐싱 정책, 회로 차단기(서비스 문제 생긴 경우) 및 Qos 다시 시도 속도 제한 부하 분산( Load Balancing ) 로깅, 추적, 상관 관계 헤더, 쿼리 문자열 및 청구 변환 IP 허용 목록에 추가 Netflix Rebbon (Deprec..
Service Discovery 란? 외부에서 MSA 서비스에 접근하기 위한 정보를 제공 ex) 전화부 책 키 밸류 형태로 등록 등록, 검색 여기서의 기술 스택은 Spring Cloud Netfilx Eureka 를 사용하겠다. Spring Cloud Netfilx Eureka 사용 방법 Discovery 서버 생성 1. maven dependency 추가 org.springframework.cloud spring-cloud-starter-netflix-eureka-server 2. main application 에 어노테이션 추가 @SpringBootApplication @EnableEurekaServer public class EcommerceDiscoveryServiceApplication { pu..