목차 1. 메시징 2. 이벤트기반 아키텍처 서비스에 적용 가능한 IPC(Inter-Process Communication) 기술은 HTTP 기반 REST나 gRPC 등 동기 요청/응답 기반의 통신 매커니즘도 있고, AMQP, STOMP 등 비동기 메시지 기반의 통신 메커니즘도 있다. IPC의 선택은 시스템 가용성에 영향을 미치는데, 요청을 처리하는 과정에서 타 서비스와 동기 통신을 하면 그만큼 가용성이 떨어지므로 가능한 서비스가 비동기 메시징을 이용하여 통신하도록 설계하는 것이 좋다. 1. 메시징 메시징은 서비스가 메시지를 서로 비동기적으로 주고받는 통신 방식이다. 메시지 메시지는 헤더와 바디로 구성되고 종류는 다음과 같다. 문서(document) : 데이터만 포함된 제네릭한 메시지, 메시지 해석은 수신..
목차 1. 트랜잭셔널 메시징 2. Amazon SQS 3. SQSListener Github OAuth2 인증을 통해 테이블에 Account 계정을 생성하고 Github 계정 정보가 변경된 경우 Member 마이크로 서비스의 Account 레플리카를 업데이트 하는 기능을 개발한다. 트랜잭셔널 아웃박스 패턴과 폴링 발행기 패턴을 활용해 DB 업데이트와 메시지 발행에서 마이크로 서비스간의 데이터 일관성이 깨지는 문제를 해결한다. DB 업데이트와 메시지 전송을 한 트랜잭션으로 묶지 않으면 마이크로 서비스간 데이터 일관성이 깨지는 문제가 발생할 수 있다. 예를 들어, DB 업데이트 후 메시지를 발행했지만 트랜잭션을 커밋하기 전에 서비스에 문제가 생겨 서버가 종료되는 경우 메시지는 전송되었지만 DB에는 반영되지 ..
- Total
- Today
- Yesterday
- 클린코드
- kafka
- 스프링 예외 추상화
- TDD
- Ubiquitous Language
- 스프링 카프카 컨슈머
- mockito
- H2
- Spring
- 트랜잭셔널 아웃박스 패턴
- 마이크로서비스 패턴
- Spring Boot
- spring rest docs
- ATDD
- clean code
- 학습 테스트
- named query
- 폴링 발행기 패턴
- Stream
- 계층형 아키텍처
- java8
- http
- JPA
- Spring Data JPA
- HTTP 헤더
- Git
- 육각형 아키텍처
- MySQL
- 이벤트 스토밍
- 도메인 모델링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |