이벤트 발생에 따른 CDC 를 처리하려고 합니다.
1. @RestController 생성
MyController에서 앞으로 url 호출 예정 (post: /message/g 호출)
2. Service 설정
3. ServiceImpl 설정
- MyModel 객체를 받아 이를 JPA가 처리할 수 있는 MyEntity 객체로 변환합니다.
- 변환된 MyEntity 객체를 JPA 저장소에 저장합니다.
- 저장된 결과를 다시 MyModel로 변환한 후 반환합니다. (kafka로 보낼 것)
<이벤트 처리>
트랜잭션과 비슷하게 이벤트로 처리할 경우
카프카로 메세지 보내기전에 오류가 발생할 경우 데이터는 커밋되는데 메세지를 구현하지 못하는 문제가 발생한다.
이벤트 처리로 인한 것도 완벽한 CDC 구현이 될 수 없다.
4. Repository 설정
5. Producer 설정
6.Consumer
중첩 클래스는 하나의 클래스 안에 정의된 또 다른 클래스를 의미합니다. Java에서 중첩 클래스는 특정 클래스와 긴밀하게 관련된 클래스를 캡슐화하여 코드 구조를 더 깔끔하고 논리적으로 만들기 위해 사용됩니다.
위 코드에서 Payload는 MyCdcMessage 내부에 정의된 중첩 클래스입니다. 이는 Payload가 MyCdcMessage와 밀접하게 관련되어 있음을 나타냅니다.
7. 결과
'인프라 > Kafaka' 카테고리의 다른 글
[실습] Kafka CDC 트랜잭션을 이용한 Pub/sub 예제 (2) | 2024.12.12 |
---|---|
[실습] Kafka CDC 객체 리스너 Pub/sub 예제 (0) | 2024.12.12 |
[실습] Kafka 수동 커밋 구현(리밸런싱) (1) | 2024.12.12 |
[실습] Kafka 객체를 JSON 문자열로 직렬화 구현 (2) | 2024.12.11 |
[실습] Kafka 배치 메세지 리스너 pub/sub 단순 구현 (0) | 2024.12.11 |