Apache Kafka용 스트리밍 연결 사용
Apache Kafka for Apache Kafka를 사용하여 ServiceNow® 스트리밍 연결 환경을 ServiceNow 인스턴스에 연결합니다.
Apache Kafka 는 여러 시스템에서 데이터를 교환할 수 있는 통합된 방법을 제공하는 분산 이벤트 스트리밍 플랫폼입니다. 스트리밍 연결 는 Kafka 환경을 인스턴스에 ServiceNow 연결하여 인스턴스와 외부 시스템 간에 데이터를 스트리밍할 수 있도록 합니다.
이점
Kafka 이벤트를 대규모로 게시하고 처리합니다. 인스턴스에서 ServiceNow Kafka 환경으로 이벤트를 게시하고 외부 시스템의 Kafka 이벤트를 짧은 대기 시간으로 대량으로 사용합니다.
- Kafka 이벤트를 생성하고 사용하는 플로우를 빌드합니다. Stream Connect는 와 통합 워크플로우 스튜디오되어 Kafka 메시지를 게시하고 처리하는 로우 코드 방법을 제공합니다.
- Kafka 환경에서 데이터를 임포트하고 기존의 강력한 변환 엔진(RTE) 또는 변환 맵 구성을 사용하여 해당 데이터를 처리합니다.
- 자체 스크립트를 사용하여 Kafka 주제의 데이터를 처리하는 소비자를 구성합니다.
- 통계 및 성과 메트릭에 대한 자세한 보고를 통해 소비자의 성과를 모니터링합니다.
구성요소
Stream Connect에는 다음과 같은 구성 요소가 있습니다.
- 생산자
생산자는 Kafka 환경에 이벤트를 게시합니다. 스트림 커넥트에는 두 개의 생산자가 있습니다.
- 의 Kafka Producer 단계 워크플로우 스튜디오
- 생산자V2 API
- 소비자
소비자는 Kafka 환경에서 이벤트를 읽고 처리합니다. Stream Connect에는 여러 소비자가 있습니다.
- 의 Kafka 메시지 트리거 워크플로우 스튜디오
- ETL(추출 변환 로드) 소비자
- 변환 맵 소비자
- 스크립트 소비자
- 주제 및 주제 네임스페이스
이벤트는 주제로 구성되고 저장됩니다. 주제는 동일한 유형의 이벤트를 저장합니다. 항목은 분할됩니다. 이벤트에는 키가 있습니다. 동일한 키를 가진 이벤트는 동일한 파티션에 저장됩니다.
주제는 주제 네임스페이스에 연결됩니다. 네임스페이스를 사용하여 항목을 논리적으로 구성할 수 있습니다. 예를 들어 출처의 Kafka 클러스터에 따라 주제를 함께 그룹화할 수 있습니다. 또한 네임스페이스를 사용하여 도메인 분리 인스턴스의 주제에 액세스할 수 있는 도메인을 구성할 수 있습니다. 자세한 내용은 Managing namespaces and topics in Hermes 문서를 참조하십시오.
- 구독
구독은 소비자와 연결된 기록입니다. 여기에는 메시지를 소비할 Kafka 주제의 이름 및 주제에 있는 파티션 수와 같은 소비자에 대한 구성 정보가 저장됩니다. 구독 기록은 Kafka 스트림이 활성화될 때 생성됩니다.
각 구독 기록에는 주제에서 읽은 소비자의 성과를 볼 수 있는 몇 가지 메트릭이 있습니다. 자세한 내용은 Kafka 구독 및 통계 보기 문서를 참조하십시오.
- 파티션 그룹
파티션 그룹은 항목 파티션의 집합입니다. 예를 들어 토픽에 6개의 파티션이 있는 경우 각 그룹에 2개의 파티션이 있는 3개의 파티션 그룹으로 나눌 수 있습니다.
- Kafka 소비자 작업
주제의 새 이벤트에 대해 Hermes를 정기적으로 확인하는 작업입니다. 이 작업은 사용 가능한 파티션 그룹을 선택하고 해당 구독을 검색합니다. 구독은 토픽 이름을 제공하고, 작업은 파티션에서 해당 토픽에 대한 메시지를 확인합니다.
- Kafka 스트림(다음 이미지에는 표시되지 않음)
Kafka 스트림은 소비자의 데이터 스트림을 정의하는 레코드입니다. 에서 워크플로우 스튜디오Kafka 메시지 트리거를 사용하는 경우 Kafka 스트림이 자동으로 생성됩니다. 다른 소비자를 사용하는 경우 수동으로 만들어야 합니다.
Kafka 환경을 ServiceNow 인스턴스에 연결하기 위해 Stream Connect는 Hermes 메시징 서비스. 이를 Hermes 메시징 서비스 통해 인스턴스는 대량의 Kafka 이벤트를 생성하고 사용할 수 있습니다. Kafka 환경과 인스턴스 간의 데이터 플로우를 관리합니다. 자세한 내용은 메시징 서비스를 참조하십시오.
다음 다이어그램은 Stream Connect의 주요 구성 요소, 타사 애플리케이션과의 ServiceNow 관련성 및 Hermes를 통해 Kafka 환경에 연결하는 방법을 보여 줍니다.
스트림 커넥트 및 워크플로우 스튜디오
Stream Connect 및 를 사용하여 Kafka 이벤트를 생성하고 사용하는 흐름을 빌드합니다 워크플로우 스튜디오 . Stream Connect에는 Kafka 이벤트를 사용하기 위한 흐름 트리거와 이를 생성하기 위한 작업 단계가 있습니다.
Kafka 메시지 트리거를 사용하여 Kafka 이벤트를 처리하는 플로우를 생성합니다. Kafka의 데이터를 사용하여 테이블에 삽입하거나 스포크를 사용하여 데이터를 타사 환경에 전달하는 플로우를 빌드할 수 있습니다.
플로우가 활성화되면 트리거가 활성화됩니다. 활성화되면 지정된 Kafka 주제에 메시지가 있을 때마다 트리거가 플로우를 시작합니다. Kafka 메시지 트리거를 사용하는 경우 Kafka 스트림 또는 구독 레코드를 만들 필요가 없습니다. 플로우가 활성화되면 시스템에서 자동으로 둘 다 생성합니다. 플로우가 활성 상태인 경우 주제에서 메시지를 읽습니다.
Kafka 생산자 단계를 사용하여 Kafka 환경의 주제에 이벤트를 게시하는 작업을 생성합니다. 예를 들어 단계에서 인시던트의 ServiceNow업데이트에 대한 메시지를 생성한 다음 Kafka 환경의 주제로 메시지를 푸시할 수 있습니다.
Avro 형식의 메시지 지원
스키마를 가져오고 생성하여 Avro 형식으로 메시지를 Apache 보내고 받습니다. Avro 형식을 사용하면 페이로드 크기를 줄이고 로컬 Kafka 인스턴스에 대한 통합을 간소화할 수 있습니다.
Confluent Registry에서 직접 Avro 스키마를 가져오거나 JSON 파일 또는 JSON 형식 문자열을 사용하여 자체 스키마를 생성할 수 있습니다. 스키마는 에 ServiceNow 저장되며 생산자와 소비자가 일반 텍스트 메시지를 Avro 형식으로 변환하거나 그 반대로 변환할 수 있도록 합니다. 자세한 내용은 스트림 커넥트의 스키마 관리 문서를 참조하십시오.
ETL, 변환 맵 및 스크립트 소비자
기존 RTE 또는 변환 맵 구성을 사용하여 Kafka 환경에서 데이터를 임포트합니다. ETL(추출 변환 로드) 및 변환 맵 소비자는 Kafka 메시지에서 페이로드를 가져오고, 데이터를 변환하고, 테이블에 레코드를 삽입하거나 업데이트하는 효율적인 방법을 제공하여 데이터 임포트를 간소화합니다. Stream Connect를 사용하여 예약된 데이터 가져오기에서 예약된 데이터 가져오기로 전환하고 동일한 구성으로 데이터를 처리할 수 있습니다.
스크립트 소비자를 사용하여 Kafka 환경의 데이터를 처리할 수도 있습니다. 스크립트 소비자는 메시지의 데이터가 구조화되지 않았거나 코드를 사용하여 데이터를 조회해야 하는 경우와 같은 고급 사용 사례를 위한 것입니다.
사용자ETL(추출 변환 로드) 소비자 구성, 변환 맵 소비자 구성, 또는 스크립트 소비자 구성, 또한 .Kafka 스트림 생성
생산자V2 API
ProducerV2 API를 사용하여 Kafka 주제에 이벤트를 게시합니다.
스트림 커넥트 메시지 복제
Kafka 환경과 ServiceNow Stream Connect 메시지 복제 간에 데이터를 복제할 수 있습니다.
Stream Connect 메시지 복제를 사용하면 인스턴스에서 직접 메시지 복제를 구성하고 관리할 수 있습니다 ServiceNow . a를 사용하여 MID 서버 데이터 복제를 실행하므로 추가 복제 서비스를 구성하거나 호스팅할 필요가 없습니다. 또한 필요한 인증서를 자동으로 생성하여 메시지 복제 설정을 단순화합니다.
자세한 내용은 스트림 커넥트 메시지 복제 문서를 참조하십시오.
처리되지 않고 전달되지 않은 메시지
메시지를 배달할 수 없는 경우 Kafka 전달되지 않은 메시지[sys_kafka_undelivered_messages] 테이블에 저장됩니다. 예약된 작업인 Kafka Producer Retry는 정기적으로 이 테이블을 읽고 메시지를 다시 배달하려고 시도합니다.
메시지 일괄 처리가 시간 초과되어 처리할 수 없는 경우 Kafka 처리되지 않은 메시지 [sys_kafka_unprocessed_messages] 테이블에 저장됩니다. 메시지 일괄 처리에 대한 제한 시간은 속성으로 com.glide.kafka_consumer.timeout 설정할 수 있습니다. 기본값은 60초입니다. 이 테이블은 순환된 테이블이므로 기록을 자동으로 정리합니다.
도메인 분리
Stream Connect 토픽 네임스페이스를 사용하여 도메인 분리 인스턴스의 Kafka 토픽에 액세스할 수 있는 도메인을 구성합니다. 주제를 네임스페이스로 ServiceNow 그룹화한 다음, 네임스페이스를 특정 도메인에 연결합니다. 자세한 내용은 도메인 분리 및 스트리밍 연결 문서를 참조하십시오.
플러그인
스트림 커넥트에는 ServiceNow 스트림 커넥트 설치 관리자 [com.glide.hub.stream_connect.installer] 플러그인이 필요합니다. 이 플러그 인을 사용하면 사용이 허가된 구성 요소가 Stream Connect에서 메시지 기반 스트리밍 데이터를 사용할 수 있습니다.