환경설정
본 장에서는 AnyLink Kafka 어댑터의 환경설정 방법과 아웃바운드 룰을 설정하는 방법에 대해서 설명합니다.
1. 어댑터 설정
Kafka 어댑터는 WebAdmin을 이용하여 설정합니다.
|
AnyLink WebAdmin의 접속 및 사용법에 관한 자세한 내용은 AnyLink WebAdmin 안내서를 참고합니다. |
웹 브라우저를 이용해 AnyLink WebAdmin에 로그인한 후 초기 화면에서 [구성관리] > [어댑터]를 선택하면 다음과 같이 어댑터 목록이 나타납니다.
어댑터 목록 화면의 [Add] 버튼을 클릭하면 어댑터를 등록할 수 있습니다. 어댑터 등록 화면에서 생성할 Kafka 어댑터에 대한 정보를 입력하고 [저장] 버튼을 클릭합니다. 정상적으로 등록되었을 경우 “저장되었습니다.”라는 결과 메시지가 나타납니다.
-
기본정보 (* : 필수 입력항목)
항목 설명 어댑터 아이디 *
생성할 리소스 어댑터의 아이디를 입력합니다.
영문, 숫자, 특수문자(-, _)를 포함하여 3~30자로 입력할 수 있으며, 동일 업무시스템 내에서 중복될 수 없습니다.
어댑터 이름 *
생성할 리소스 어댑터의 이름을 입력합니다.
영문, 한글, 숫자, 특수문자(-, _)를 포함하여 3~30자로 입력할 수 있습니다.
어댑터 종류 *
어댑터의 종류를 선택합니다. 리스트에서 Kafka를 선택합니다.
설명
어댑터의 설명을 입력합니다.
업무시스템 이름 *
어댑터를 배포할 업무시스템을 선택합니다.
배포 사유
배포 사유를 작성합니다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있습니다.
-
[상세설정] 탭
항목 설명 아웃바운드 스레드 풀 아이디
아웃바운드 서비스 호출로 해당 어댑터를 통해 요청 서비스가 실행될 경우 해당 서비스가 실제로 실행될 스레드 풀 아이디를 선택합니다.
2. 엔드포인트 설정
WebAdmin의 [구성관리] > [어댑터] 메뉴를 선택하면 왼쪽에 등록된 어댑터 트리가 조회됩니다. 트리에서 엔드포인트를 추가할 어댑터를 클릭하면 오른쪽에 어댑터 상세정보를 조회할 수 있습니다.
어댑터 상세정보 화면의 [엔드포인트 목록] 탭을 클릭하면 해당 어댑터 하위에 있는 엔드포인트 목록이 조회됩니다.
[엔드포인트 목록] 탭 아래 [Add] 버튼을 클릭하면 엔드포인트 등록 화면이 나타납니다. 각 항목의 정보를 입력하고 [저장] 버튼을 클릭하여 엔드포인트를 등록합니다. 엔드포인트가 등록되면 WebAdmin의 왼쪽 트리에서 등록된 어댑터와 엔드포인트를 확인할 수 있습니다.
엔드포인트 등록 화면은 기본 정보와 [연결정보], [큐설정], [상세설정] 탭으로 구성되어 있습니다. 기본 정보의 '통신 방향' 항목에 선택한 값에 따라서 탭 화면이 다르게 구성됩니다. 각 통신 방향에 대한 탭 화면에 대한 설명은 해당 절을 참고합니다.
-
기본정보 (* : 필수 입력항목)
항목 설명 엔드포인트 아이디 *
엔드포인트 아이디를 입력합니다.
3~30자리 영문자 또는 숫자 조합, 특수문자(-, _) 입력이 가능합니다. 해당 값은 동일 어댑터 또는 엔드포인트 그룹에서 유일한 값입니다.
엔드포인트 이름 *
엔드포인트 이름을 입력합니다.
3~30자리 영문자, 한글 또는 숫자 조합, 특수문자(-, _) 입력이 가능합니다.
엔드포인트 그룹 이름
엔드포인트의 그룹 이름입니다.
엔드포인트 상태
생성할 때 상태 초기값을 선택합니다.
-
Running : Running 상태이면 엔드포인트가 시작된 상태가 됩니다.
-
Stopped : Stopped 상태이면 엔드포인트가 중지된 상태가 됩니다.
부팅 초기값
부팅할 때 상태 초기값을 선택합니다.
-
Running : 부팅할 때 엔드포인트가 시작(Running)된 상태가 됩니다.
-
Stopped : 부팅할 때 엔드포인트가 중지(Stopped)된 상태가 됩니다.
통신 방향
엔드포인트의 통신 방향을 설정합니다.
-
Inbound : 외부로부터 메시지를 받기위한 엔드포인트입니다.
-
Outbound : 외부로 메시지를 전달하기 위한 엔드포인트입니다.
설명
생성하는 엔드포인트에 대한 설명을 입력합니다. 입력하지 않아도 무관합니다.
배포 사유
배포 사유를 작성합니다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있습니다.
-
2.1. 인바운드 엔드포인트
다음은 엔드포인트 등록 화면 - 기본정보에서 '통신 방향' 항목을 'Inbound’로 선택한 경우 각 탭 화면에 대한 설명입니다.
-
[연결정보] 탭 (* : 필수 입력항목)
엔드포인트 등록 화면 - [연결정보]항목 설명 bootstrapServers *
Kafka 클러스터에 대한 초기 연결 주소 목록을 지정합니다.
topic *
Kafka 클러스터에 저장된 데이터의 주제입니다.
securityProtocol
보안 정책을 설정합니다. PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL 이 존재합니다. (기본값: PLAINTEXT)
Group ID *
Consumer 그룹의 식별자를 지정합니다.
autoOffsetReset *
오프셋 초기화 정책을 지정합니다. 가능한 값은 "latest", "earliest", "none" 등이 존재합니다. (기본값: latest)
enableAutoCommit
Consumer가 읽어온 메시지의 위치(Offset)를 Kafka에 자동으로 저장(Commit)할지 결정합니다. (기본값: true)
autoCommitIntervalMs
자동 커밋이 활성화된 경우, 커밋을 수행할 시간 주기를 설정합니다. (기본값: 5000)
fetchMaxBytes
한 번에 가져올 수 있는 최대 데이터 양을 바이트 단위로 지정합니다. (기본값: 52428800)
maxPollRecords
한 번에 폴링할 최대 레코드 수를 지정합니다. (기본값: 500)
maxPartitionFetchBytes
한 번에 한 파티션에서 가져올 최대 바이트 수를 지정합니다. (기본값: 1048576)
keyDeserializer *
메시지 키를 역직렬화하는 데 사용되는 클래스를 지정합니다. (기본값: org.apache.kafka.common.serialization.StringDeserializer)
valueDeserializer *
메시지 값(payload)을 역직렬화하는 데 사용되는 클래스를 지정합니다. (기본값: org.apache.kafka.common.serialization.StringDeserializer)
Isolation Level
isolation level 을 설정합니다. (기본값: read_uncommitted)
other configuration
추가적인 kafka consumer config를 설정합니다. '옵션=값' 형식으로 작성합니다. 위의 설정들과 동일한 옵션은 사용할 수 없습니다.
예시heartbeat.interval.ms=3000※
max.poll.interval.ms값은 기본값인 300000, 폴링 간격의 3배, 그리고 configuration에 설정한 값 중 가장 큰 값이 적용됩니다. -
[큐 설정] 탭 (* : 필수 입력항목)
엔드포인트 등록 화면 - [큐 설정] - 인바운드항목 설명 폴링 간격(ms)
폴링을 시도한 뒤, 다음 폴링 호출까지 대기하는 시간입니다.
설정하지 않을 경우 대기 없이 지속적으로 폴링을 시도합니다.
-
[상세설정] 탭
거래와 연계하기 위한 설정으로 각 항목은 다음과 같습니다.
엔드포인트 등록 화면 - [상세설정]항목 설명 거래그룹/거래
해당 엔드포인트로 들어오는 전문을 어떤 거래로 보낼지 선택합니다. 해당 옵션은 인바운드 엔드포인트에만 존재합니다.
2.2. 아웃바운드 엔드포인트
다음은 엔드포인트 등록 화면 - 기본정보에서 '통신 방향' 항목을 'Outbound’로 선택한 경우 각 탭 화면에 대한 설명입니다. [상세설정] 탭 화면에 대한 내용은 인바운드 엔드포인트를 참고합니다.
-
[연결정보] 탭 (* : 필수 입력항목)
항목 설명 bootstrapServers *
Kafka 클러스터에 대한 초기 연결 주소 목록을 지정합니다.
topic *
Kafka 클러스터에 저장된 데이터의 주제입니다.
securityProtocol
보안 정책을 설정합니다. PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL 등이 존재합니다. (기본값: PLAINTEXT)
ACKs *
메시지를 성공적으로 보냈음을 확인하는 방법을 지정합니다. (기본값: 1)
retries *
메시지 전송 재시도 최대 횟수를 지정합니다. (기본값: 2147483647)
compressionType
전송되는 메시지의 압축 유형을 지정합니다. 가능한 값은 "none", "gzip", "snappy", "lz4", "zstd" 등이 있습니다. (기본값: none)
deliveryTimeoutMs
메시지 전송 후 브로커에 의해 성공적으로 전달될 때까지 대기하는 시간 제한입니다. 이 값은 최소한 request.timeout.ms, linger.ms 두 옵션 값의 합보다 같거나 커야 합니다. (기본값: 120000)
requestTimeoutMs
클라이언트가 요청을 보내고 응답을 받기 위해 대기하는 최대 시간입니다. (기본값: 30000)
maxBlockMs
브로커에게 요청이 차단되는 최대 시간입니다. (기본값: 60000)
bufferMemory
브로커로 메시지를 보낼 때 사용할 수 있는 총 메모리 양을 지정합니다. (기본값: 33554432)
keySerializer *
메시지 키를 직렬화하는 데 사용되는 클래스를 지정합니다. (기본값: org.apache.kafka.common.serialization.StringSerializer)
valueSerializer *
메시지 값(payload)을 직렬화하는 데 사용되는 클래스를 지정합니다. (기본값: org.apache.kafka.common.serialization.StringSerializer)
other configuration
추가적인 kafka producer config를 설정합니다. '옵션=값' 형식으로 작성합니다. 위의 설정들과 동일한 옵션은 사용할 수 없습니다.
예시offset.storage.partitions=25
3. 아웃바운드 룰 설정
본 절에서는 아웃바운드 룰 설정방법에 대해서 설명합니다. Kafka 아웃바운드 룰은 AnyLink 스튜디오를 이용하여 설정합니다.
|
AnyLink 스튜디오의 자세한 사용법은 AnyLink 스튜디오 안내서를 참고합니다. |
AnyLink 스튜디오 거래그룹 네비게이터의 거래/거래그룹 항목의 컨텍스트 메뉴에서 [새로만들기] > [아웃바운드룰] > [Kafka 아웃바운드 룰]을 선택하면 다음과 같이 Kafka 아웃바운드 룰 생성 화면이 나타납니다. 각 항목을 입력하고 [Finish] 버튼을 클릭합니다.
| 항목 | 설명 |
|---|---|
아웃바운드 아이디 |
아웃바운드 룰의 아이디를 입력합니다. 영어, 숫자, 특수문자(_) 입력이 가능하며 첫 글자는 영어만 가능합니다. 해당 값은 동일 거래 노드에 유일한 값입니다. |
아웃바운드 이름 |
아웃바운드 룰의 이름을 입력합니다. 한글, 영어, 숫자, 특수문자(-, _) 입력이 가능합니다. 아웃바운드 룰 이름은 XML Naming Convention을 따릅니다. |
아웃바운드 룰을 생성하면 다음과 같은 설정 화면이 나타납니다.
-
아웃바운드 룰 정의 (* : 필수 입력항목)
항목 설명 아웃바운드 룰 ID *
아웃바운드 룰 아이디를 입력합니다.
영어와 숫자, 특수문자(_) 입력이 가능합니다. 해당 값은 동일 거래 노드에 유일한 값입니다.
아웃바운드 룰 이름 *
아웃바운드 룰 이름을 입력합니다.
한글, 영어, 숫자, 특수문자(-, _) 입력이 가능합니다.
요청처리 타임아웃(ms)
요청처리 타임아웃을 입력합니다.
요청처리 타임아웃은 아웃바운드 룰이 호출된 시점에서부터 타임아웃 시간 동안 연결을 할당 받지 못하거나 외부로 요청을 보냈지만 응답을 받지 못했을 경우 발생합니다. (기본값: 10000ms)
Endpoint(Group) *
아웃바운드 룰이 사용할 엔드포인트 혹은 엔드포인트 그룹을 지정합니다.
설명
아웃바운드 룰의 설명을 입력합니다. 설명은 입력하지 않아도 무방합니다.
응답 수신 방식
아웃바운드 룰의 응답 수신 방식을 설정합니다.
-
SYNC: 메시지를 보낸 후 kafka로부터 응답을 받을 때까지 대기합니다.
-
ONEWAY: 메시지를 보낸 후 kafka로부터 응답을 받지 않습니다.
-
-
아웃바운드 룰 메시지 정의
아웃바운드 룰에서는 요청 메시지, 응답 메시지를 설정할 수 있습니다.
항목 설명 요청 메시지
아웃바운드 룰에서 사용될 요청 메시지를 선택합니다.
응답 메시지
아웃바운드 룰에서 사용될 응답 메시지를 선택합니다.