환경설정

본 장에서는 AnyLink Kafka 어댑터의 환경설정 방법과 아웃바운드 룰을 설정하는 방법에 대해서 설명합니다.

1. 어댑터 설정

Kafka 어댑터는 WebAdmin을 이용하여 설정합니다.

AnyLink WebAdmin의 접속 및 사용법에 관한 자세한 내용은 AnyLink WebAdmin 안내서를 참고합니다.

웹 브라우저를 이용해 AnyLink WebAdmin에 로그인한 후 초기 화면에서 [구성관리] > [어댑터]를 선택하면 다음과 같이 어댑터 목록이 나타납니다.

figure adapter list
어댑터 목록 화면

어댑터 목록 화면[Add] 버튼을 클릭하면 어댑터를 등록할 수 있습니다. 어댑터 등록 화면에서 생성할 Kafka 어댑터에 대한 정보를 입력하고 [저장] 버튼을 클릭합니다. 정상적으로 등록되었을 경우 “저장되었습니다.”라는 결과 메시지가 나타납니다.

figure create adapter
어댑터 등록
  • 기본정보 (* : 필수 입력항목)

    항목 설명

    어댑터 아이디 *

    생성할 리소스 어댑터의 아이디를 입력합니다.

    영문, 숫자, 특수문자(-, _)를 포함하여 3~30자로 입력할 수 있으며, 동일 업무시스템 내에서 중복될 수 없습니다.

    어댑터 이름 *

    생성할 리소스 어댑터의 이름을 입력합니다.

    영문, 한글, 숫자, 특수문자(-, _)를 포함하여 3~30자로 입력할 수 있습니다.

    어댑터 종류 *

    어댑터의 종류를 선택합니다. 리스트에서 Kafka를 선택합니다.

    설명

    어댑터의 설명을 입력합니다.

    업무시스템 이름 *

    어댑터를 배포할 업무시스템을 선택합니다.

    배포 사유

    배포 사유를 작성합니다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있습니다.

  • [상세설정] 탭

    항목 설명

    아웃바운드 스레드 풀 아이디

    아웃바운드 서비스 호출로 해당 어댑터를 통해 요청 서비스가 실행될 경우 해당 서비스가 실제로 실행될 스레드 풀 아이디를 선택합니다.

2. 엔드포인트 설정

WebAdmin의 [구성관리] > [어댑터] 메뉴를 선택하면 왼쪽에 등록된 어댑터 트리가 조회됩니다. 트리에서 엔드포인트를 추가할 어댑터를 클릭하면 오른쪽에 어댑터 상세정보를 조회할 수 있습니다.

어댑터 상세정보 화면[엔드포인트 목록] 탭을 클릭하면 해당 어댑터 하위에 있는 엔드포인트 목록이 조회됩니다.

figure adapter config
엔드포인트 등록

[엔드포인트 목록] 탭 아래 [Add] 버튼을 클릭하면 엔드포인트 등록 화면이 나타납니다. 각 항목의 정보를 입력하고 [저장] 버튼을 클릭하여 엔드포인트를 등록합니다. 엔드포인트가 등록되면 WebAdmin의 왼쪽 트리에서 등록된 어댑터와 엔드포인트를 확인할 수 있습니다.

엔드포인트 등록 화면기본 정보[연결정보], [큐설정], [상세설정] 탭으로 구성되어 있습니다. 기본 정보의 '통신 방향' 항목에 선택한 값에 따라서 탭 화면이 다르게 구성됩니다. 각 통신 방향에 대한 탭 화면에 대한 설명은 해당 절을 참고합니다.

figure create kafka endpoint initial1
엔드포인트 등록 화면 - 기본정보
  • 기본정보 (* : 필수 입력항목)

    항목 설명

    엔드포인트 아이디 *

    엔드포인트 아이디를 입력합니다.

    3~30자리 영문자 또는 숫자 조합, 특수문자(-, _) 입력이 가능합니다. 해당 값은 동일 어댑터 또는 엔드포인트 그룹에서 유일한 값입니다.

    엔드포인트 이름 *

    엔드포인트 이름을 입력합니다.

    3~30자리 영문자, 한글 또는 숫자 조합, 특수문자(-, _) 입력이 가능합니다.

    엔드포인트 그룹 이름

    엔드포인트의 그룹 이름입니다.

    엔드포인트 상태

    생성할 때 상태 초기값을 선택합니다.

    • Running : Running 상태이면 엔드포인트가 시작된 상태가 됩니다.

    • Stopped : Stopped 상태이면 엔드포인트가 중지된 상태가 됩니다.

    부팅 초기값

    부팅할 때 상태 초기값을 선택합니다.

    • Running : 부팅할 때 엔드포인트가 시작(Running)된 상태가 됩니다.

    • Stopped : 부팅할 때 엔드포인트가 중지(Stopped)된 상태가 됩니다.

    통신 방향

    엔드포인트의 통신 방향을 설정합니다.

    • Inbound : 외부로부터 메시지를 받기위한 엔드포인트입니다.

    • Outbound : 외부로 메시지를 전달하기 위한 엔드포인트입니다.

    설명

    생성하는 엔드포인트에 대한 설명을 입력합니다. 입력하지 않아도 무관합니다.

    배포 사유

    배포 사유를 작성합니다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있습니다.

2.1. 인바운드 엔드포인트

다음은 엔드포인트 등록 화면 - 기본정보에서 '통신 방향' 항목을 'Inbound’로 선택한 경우 각 탭 화면에 대한 설명입니다.

  • [연결정보] 탭 (* : 필수 입력항목)

    figure kafka inbound ep conn
    엔드포인트 등록 화면 - [연결정보]
    항목 설명

    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에 설정한 값 중 가장 큰 값이 적용됩니다.

  • [큐 설정] 탭 (* : 필수 입력항목)

    figure kafka inbound ep queue
    엔드포인트 등록 화면 - [큐 설정] - 인바운드
    항목 설명

    폴링 간격(ms)

    폴링을 시도한 뒤, 다음 폴링 호출까지 대기하는 시간입니다.

    설정하지 않을 경우 대기 없이 지속적으로 폴링을 시도합니다.

  • [상세설정] 탭

    거래와 연계하기 위한 설정으로 각 항목은 다음과 같습니다.

    figure kafka inbound ep biztx
    엔드포인트 등록 화면 - [상세설정]
    항목 설명

    거래그룹/거래

    해당 엔드포인트로 들어오는 전문을 어떤 거래로 보낼지 선택합니다. 해당 옵션은 인바운드 엔드포인트에만 존재합니다.

2.2. 아웃바운드 엔드포인트

다음은 엔드포인트 등록 화면 - 기본정보에서 '통신 방향' 항목을 'Outbound’로 선택한 경우 각 탭 화면에 대한 설명입니다. [상세설정] 탭 화면에 대한 내용은 인바운드 엔드포인트를 참고합니다.

  • [연결정보] 탭 (* : 필수 입력항목)

    figure create kafka endpoint out initial
    항목 설명

    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] 버튼을 클릭합니다.

figure kafka rule config
아웃바운드 룰 생성
항목 설명

아웃바운드 아이디

아웃바운드 룰의 아이디를 입력합니다.

영어, 숫자, 특수문자(_) 입력이 가능하며 첫 글자는 영어만 가능합니다. 해당 값은 동일 거래 노드에 유일한 값입니다.

아웃바운드 이름

아웃바운드 룰의 이름을 입력합니다.

한글, 영어, 숫자, 특수문자(-, _) 입력이 가능합니다. 아웃바운드 룰 이름은 XML Naming Convention을 따릅니다.

아웃바운드 룰을 생성하면 다음과 같은 설정 화면이 나타납니다.

figure kafka rule config 02
Kafka 아웃바운드 룰
  • 아웃바운드 룰 정의 (* : 필수 입력항목)

    항목 설명

    아웃바운드 룰 ID *

    아웃바운드 룰 아이디를 입력합니다.

    영어와 숫자, 특수문자(_) 입력이 가능합니다. 해당 값은 동일 거래 노드에 유일한 값입니다.

    아웃바운드 룰 이름 *

    아웃바운드 룰 이름을 입력합니다.

    한글, 영어, 숫자, 특수문자(-, _) 입력이 가능합니다.

    요청처리 타임아웃(ms)

    요청처리 타임아웃을 입력합니다.

    요청처리 타임아웃은 아웃바운드 룰이 호출된 시점에서부터 타임아웃 시간 동안 연결을 할당 받지 못하거나 외부로 요청을 보냈지만 응답을 받지 못했을 경우 발생합니다. (기본값: 10000ms)

    Endpoint(Group) *

    아웃바운드 룰이 사용할 엔드포인트 혹은 엔드포인트 그룹을 지정합니다.

    설명

    아웃바운드 룰의 설명을 입력합니다. 설명은 입력하지 않아도 무방합니다.

    응답 수신 방식

    아웃바운드 룰의 응답 수신 방식을 설정합니다.

    • SYNC: 메시지를 보낸 후 kafka로부터 응답을 받을 때까지 대기합니다.

    • ONEWAY: 메시지를 보낸 후 kafka로부터 응답을 받지 않습니다.

  • 아웃바운드 룰 메시지 정의

    아웃바운드 룰에서는 요청 메시지, 응답 메시지를 설정할 수 있습니다.

    항목 설명

    요청 메시지

    아웃바운드 룰에서 사용될 요청 메시지를 선택합니다.

    응답 메시지

    아웃바운드 룰에서 사용될 응답 메시지를 선택합니다.