일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Parallel Old GC
- spring batch
- Resilinece4j
- 디자인 패턴
- 스레드
- Serial GC
- 사가 패턴
- Action Pattern
- 알고리즘
- Java
- JPA
- 배치
- saga pattern
- 생산자 소비자 패턴
- java 정렬
- 체인 패턴
- Spring Boot Actuator
- 멀티스레드
- 디자인패턴
- Transaction Pattern
- 스프링 배치
- Spring Cloud Netfilx Eureka
- thread
- zipkin
- spring cloud
- The law of Demeter
- MSA
- 키클락
- TypeScript
- 타입스크립트
- Today
- Total
목록분류 전체보기 (84)
PSD( Private-Self-Development )
로그 확인용분산된 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..

MSA 란? 마이크로 서비스 아키텍처의 준말. 이 아키텍처는 소프트웨어 시스템을 작은, 독립적인 컴포넌트로 분할하여 각 컴포넌트를 개별적으로 배포하고 확장할 수 있게 한다. 이러한 아키텍처는 대규모 시스템에서 일반적으로 사용되며, 유연성과 확장성을 제공합니다. 현재의 IT 서비스들은 Cloud Natice Architecure(Anti-fragile) 로 진화하게 되었다. 이유 확장 가능한 아키텍처 탄력적 아키텍처 (Auto scaileing) 장애 격리 적은 금액 Cloud Native Application 의 요소 4가지 Microservice DevOps CI/CD 지속적 통합(CI) / 지속적 배포(CD) Container 가상화 MSA 의 특징 프로세스 및 구조 변경을 위한 도전이 전제 조건 독..