목차 1. 스키마 2. 스키마 레지스트리 3. Avro 4. 스키마 레지스트리 동작 방식 5. 스키마 호환성 6. 스키마 레지스트리 실습 카프카를 사용하면서 스키마 레지스트리를 사용해야 하는 이유와 스키마 레지스트리의 동작 방식을 알아본다. 1. 스키마 카프카의 데이터 흐름은 대부분 브로트캐스트 방식이기 때문에 프로듀서를 일방적으로 신뢰할 수밖에 없는 방식이다. 따라서 프로듀서 관리자는 카프카 토픽의 데이터를 컨슘하는 관리자에게 반드시 데이터 구조를 설명해야 한다. 데이터를 컨슘하는 부서가 많고 관리자가 자주 바뀐다면 그때마다 데이터 구조를 설명하는 일이 쉬운 일은 아닐것이다. 이와 같이 데이터를 컨슘하는 여러 부서에게 그 데이터에 대한 정확한 정의와 의미를 알려주는 역할을 스키마를 통해 할 수 있다. ..
도메인 이벤트를 발생시키는 프로듀서와 이벤트를 가져와 데이터를 변경하는 컨슈머를 구성한다.메시지 중복 저장을 방지하는 멱등성 프로듀서를 구성하고 카프카 클러스터는 3개의 브로커를 가지는 멀티 노드 클러스터로 만들어 가용성을 높인다. 컨슈머는 브로커 파티션의 갯수만큼 멀티 스레드로 구성해 데이터를 병렬로 처리하도록 한다. 1. 개발 환경java 11spring boot 2.7.xgradleconfluent kafka 3.xoracle VM 2. 카프카 환경 설정confluent-kafka 설치$ wget https://packages.confluent.io/archive/7.2/confluent-community-7.2.1.tar.gz$ tar xvf confluen..
목차 1. 컨슈머 Client 2. Poll 3. Heartbeat Thread 4. 리밸런싱 5. 오프셋 커밋 6. 특정 파티션만 할당 7. 컨슈머의 안전한 종료 8. 멀티 스레드 컨슈머 9. 컨슈머 랙 10. 스프링 카프카 컨슈머 1. 컨슈머 Client 카프카 컨슈머는 하나의 컨슈머 그룹에 속해 실행되며 카프카 브로커의 파티션은 컨슈머 그룹내 하나 이상의 컨슈머에 할당된다. 기본 컨슈머 Client API 처리 로직 // 1. Consumer 환경 설정(Properties 객체를 이용) String topicName = "simple-topic"; Properties props = new Properties(); props.setProperty(ConsumerConfig.BOOTSTRAP_SERVE..
목차 1. 프로듀서 Client 2. Serializer 3. Partitioner 4. Accumulator 5. Sender 6. 멱등성(idempotence) 프로듀서 7. 트랜잭션 프로듀서 8. 스프링 카프카 프로듀서 1. 프로듀서 Client 카프카 프로듀서는 브로커로 데이터를 전송할 때 내부적으로 직렬화, 파티셔너, 배치 생성 단계를 거친다. 기본 프로듀서 Client API 처리 로직 // 1. Producer 환경 설정(Properties 객체를 이용) String topicName = "simple-topic"; Properties props = new Properties(); props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "19..
- Total
- Today
- Yesterday
- 마이크로서비스 패턴
- Ubiquitous Language
- 이벤트 스토밍
- JPA
- 육각형 아키텍처
- mockito
- MySQL
- Spring
- TDD
- 스프링 예외 추상화
- kafka
- 도메인 모델링
- Git
- named query
- Spring Data JPA
- Stream
- ATDD
- 학습 테스트
- HTTP 헤더
- 클린코드
- Spring Boot
- clean code
- java8
- 트랜잭셔널 아웃박스 패턴
- 폴링 발행기 패턴
- http
- 스프링 카프카 컨슈머
- 계층형 아키텍처
- spring rest docs
- H2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |