예제
본 장에서는 AnyLink Kafka 어댑터를 사용한 예제를 설명합니다.
1. 개요
다음은 Kafka 기본 거래 구성입니다. 본 예제에서 아웃바운드 거래는 SYNC 방식으로 구성하며 잡 스케줄을 사용하여 수행합니다.
다음은 거래를 수행하는 과정에 대한 설명입니다.
-
인바운드 거래
인바운드 어댑터를 통해 Broker로부터 Kafka 메시지를 수신 후 서비스 플로우를 수행합니다.
-
아웃바운드 거래
-
Kafka 아웃바운드 어댑터를 통해 요청 출력 전문을 Broker로 전송합니다.
-
Broker 로부터 응답 입력 전문을 수신합니다.
-
전문 구성
예제에서 사용할 전문 구성은 다음과 같습니다. 전문은 모두 JSON 형식의 메시지를 사용합니다.
-
인바운드 거래
Physical Name Logical Name Field Type JsonKey key
key
string
none
value
value
string
none
-
아웃바운드 거래
-
요청 메시지
Physical Name Logical Name Field Type JsonKey topic
topic
string
none
partition
partition
string
none
timestamp
timestamp
string
none
key
key
string
none
value
value
string
none
-
응답 메시지
Physical Name Logical Name Field Type JsonKey topic
topic
string
none
partition
partition
string
none
timestamp
timestamp
string
none
offset
offset
string
none
-
|
2. 어댑터 생성
AnyLink WebAdmin에 로그인한 후 초기화면에서 [구성관리] > [어댑터]를 선택한 후 어댑터 목록화면의 [Add] 버튼을 클릭하면 어댑터 등록 화면이 나타납니다. 어댑터 생성에 대한 자세한 내용은 어댑터 설정을 참고합니다.
|
AnyLink WebAdmin의 접속 및 사용법에 관한 자세한 내용은 AnyLink WebAdmin 안내서를 참고합니다. |
Kafka 어댑터를 생성합니다.
3. 엔드포인트 생성
어댑터 생성이 완료되면 [어댑터] 탭에서 등록된 어댑터를 조회하고, 조회된 어댑터를 클릭하면 어댑터 상세정보 화면으로 이동합니다.
[엔드포인트 목록] 탭 아래 [Add] 버튼을 클릭하면 엔드포인트 등록 화면이 나타납니다. 엔드포인트 생성에 대한 자세한 설명은 엔드포인트 설정을 참고합니다.
3.1. 인바운드 엔드포인트 생성
다음은 인바운드 엔드포인트를 생성하는 예제입니다.
-
[연결정보] 탭
다음과 같이 연결 정보를 입력합니다.
인바운드 엔드포인트 등록 화면 - [연결정보]항목 설정값 bootstrapServers
192.168.11.64:9092
topic
ManualTopic
securityProtocol
PLAINTEXT
Group ID
ManualTopic-Consumer-Group
autoOffsetReset
latest
enableAutoCommit
yes
autoCommitIntervalMs
5000
fetchMaxBytes
52428800
maxPollRecords
500
maxPartitionFetchBytes
1048576
keyDeserializer
org.apache.kafka.common.serialization.StringDeserializer
valueDeserializer
org.apache.kafka.common.serialization.StringDeserializer
Isolation Level
read_uncommitted
-
[큐 설정] 탭
다음과 같이 큐 정보를 입력합니다.
인바운드 엔드포인트 등록 화면 - [큐 설정]항목 설정값 폴링 간격(ms)
5000
-
[상세설정] 탭
다음과 같이 거래 정보를 입력합니다.
인바운드 엔드포인트 등록 화면 - [상세 설정]항목 설정값 거래그룹/거래
manual.kafkaGrp.inBiztx
3.2. 아웃바운드 엔드포인트 생성
-
[연결정보] 탭
다음과 같이 연결 정보를 입력합니다.
아웃바운드 엔드포인트 등록 화면 - [연결정보]항목 설정값 bootstrapServers
192.168.11.64:9092
topic
ManualTopic
securityProtocol
PLAINTEXT
ACKs
1
retries
2147483647
compressionType
none
deliveryTimeoutMs
120000
requestTimeoutMs
30000
maxBlockMs
60000
maxRequestSize
1048576
bufferMemory
33554432
keySerializer
org.apache.kafka.common.serialization.StringSerializer
valueSerializer
org.apache.kafka.common.serialization.StringSerializer
4. 스튜디오 리소스 생성
본 절에서는 스튜디오에서 리소스를 생성하는 방법에 대해서 설명합니다.
|
AnyLink 스튜디오 사용법에 대한 자세한 내용은 AnyLink 스튜디오 안내서를 참고합니다. |
예제는 하나의 거래 그룹을 부모 노드로 하는 인바운드 거래와 아웃바운드 거래로 구성됩니다.
거래 노드는 다음의 과정을 통해 생성됩니다.
-
거래그룹 생성
거래 그룹의 생성 설정은 다음과 같습니다.
항목 설정값 패키지
manual
거래 이름
Kafka예제
거래 ID
kafkaGrp
-
거래 생성
거래 그룹으로 선언된 "Kafka예제" 노드에 거래로 선언된 "Kafka인바운드거래" 및 "Kafka아웃바운드거래" 노드를 추가합니다.
거래 생성-
Kafka 인바운드 거래 생성
항목 설정값 노드 타입
거래
거래 ID
inBiztx
거래 이름
Kafka인바운드거래
-
Kafka 아웃바운드 거래 생성
항목 설정값 노드 타입
거래
거래 ID
outBiztx
거래 이름
Kafka아웃바운드거래
-
-
메시지
예제에서는 각 거래에서 사용할 바디 메시지를 생성해야 합니다.
메시지 생성 -
아웃바운드 룰 생성
아웃바운드 거래에서는 아웃바운드 룰을 호출하여 Kafka 아웃바운드를 실행합니다.
거래 노드의 컨텍스트 메뉴에서 [새로만들기] > [아웃바운드 룰] > [Kafka 아웃바운드 룰]을 선택하면 Kafka 아웃바운드 룰 생성 화면이 나타납니다.
아웃바운드 룰 생성 -
플로우 생성
Kafka 인바운드 및 아웃바운드 거래는 모두 호출 서비스로 플로우를 지정합니다.
플로우 생성
5. 스튜디오 리소스 설정
본 절에서는 생성한 리소스를 설정하는 방법에 대해서 설명합니다.
|
AnyLink 스튜디오 사용법에 대한 자세한 내용은 AnyLink 스튜디오 안내서를 참고합니다. |
5.1. 인바운드 거래 설정
다음은 AnyLink 스튜디오를 사용한 인바운드 거래를 작성하는 과정에 대한 설정값입니다. 본 예제에서 사용된 거래는 oneway 방식으로 구동되며, Json 타입의 전문을 요청 메시지로 사용합니다.
|
인바운드 거래의 작성 방법에 대해서는 일반적인 거래 설정 패턴을 벗어나지 않기 때문에 자세한 설정값은 생략합니다. |
-
예제에서 사용된 거래의 구조는 다음과 같습니다.
거래 트리 -
다음과 같이 전문을 받은 뒤 응답을 주지 않고 종료하는 플로우를 작성합니다.
인바운드 플로우
5.2. 아웃바운드 거래 설정
본 예제에서 사용된 거래는 SYNC 방식으로 구동되며, Json 타입의 전문을 요청 메시지로 사용합니다.
-
예제에서 사용된 거래의 구조는 다음과 같습니다.
거래 트리 -
다음과 같이 예제에서 호출될 플로우를 작성합니다.
-
상기 플로우의 KAFKA 액티비티에서 호출할 아웃바운드 룰은 다음과 같습니다.
응답 수신 방식은 SYNC를 사용합니다.
아웃바운드 룰아웃바운드 룰 설정 정보는 다음과 같습니다.
항목 설정값 아웃바운드룰 ID
kafkaOutboundRule
아웃바운드룰 이름
Kafka아웃바운드룰
요청처리 타임아웃(ms)
10000
Endpoint(Group)
KAFKA_EP_OUT
요청 메시지
ReqMsg (Json)
정상 응답 메시지
ResMsg (Json)