소개
본 장에서는 AnyLink Kafka 어댑터의 기본적인 동작방식에 대해서 설명합니다.
1. 개요
Kafka 어댑터는 Apache Kafka(이하 Kafka)와의 연계를 지원합니다. Kafka 버전 3.9.1을 기반으로 만들어졌으며, 하위 버전 호환성에 대해서는 Kafka 라이브러리의 그것을 따릅니다.
2. 환경 구성
AnyLink에서 Kafka 어댑터를 사용하기 위해서는 다음과 같은 환경 구성이 필요합니다.
-
Java 버전
Java 17(JDK 17.0)
-
로깅용 라이브러리
라이브러리 배치 경로 logback-classic-1.5.21.jar
${JEUS_HOME}/lib/system
logback-core-1.5.21.jar
${JEUS_HOME}/lib/system
slf4j-api-2.0.7.jar
${JEUS_HOME}/lib/system
로깅용 라이브러리를 추가하면 AnyLink에서 hibernate 로그가 출력되지 않을 수 있습니다. 기존과 동일하게 hibernate 로그를 출력하려면 다음 JVM 옵션을 지정해야 합니다.
-Dorg.jboss.logging.provider=jdk -
직렬화/역직렬화용 라이브러리
라이브러리 배치 경로 gson-2.11.0.jar
${DOMAIN_HOME}/lib/application/
-
Kafka 라이브러리
라이브러리 배치 경로 kafka-clients-3.9.1.jar
${DOMAIN_HOME}/lib/application/
|
해당 라이브러리는 오픈 소스 라이브러리로, AnyLink 배포판에 포함되어 있지 않으므로 별도 준비가 필요합니다. |
3. 어댑터 동작방식
Kafka 어댑터는 Kafka 엔드포인트를 등록할 수 있으며, Kafka 엔드포인트는 인바운드 엔드포인트와 아웃바운드 엔드포인트로 나뉩니다.
각 엔드포인트의 동작 방식은 다음과 같습니다.
-
인바운드 엔드포인트
구분 설명 Oneway
Consumer를 통해 일정 간격으로 신규 메시지를 polling 합니다.
-
아웃바운드 엔드포인트
구분 설명 Sync
거래에서 Kafka 아웃바운드 룰이 호출될 때 Producer를 통해 해당 요청 메시지를 Kafka로 전송합니다.
메시지를 보낸 후 Kafka로부터 응답을 받을 때까지 대기합니다.
Oneway
기본 동작 방식은 Sync와 동일하나 요청 메시지에 대한 응답을 받지 않습니다.