ProducerV2 - 범위 지정됨
ProducerV2 API는 인스턴스에서 Kafka 주제로 메시지를 ServiceNow 게시하는 메서드를 제공합니다.
주:
이 API에는 ServiceNow Stream Connect Installer 플러그인(com.glide.hub.stream_connect.installer)이 필요하며 이 API에는 구독이 스트리밍 연결 필요합니다. 자세한 내용은 https://www.servicenow.com/now-platform/workflow-data-fabric.html 문서를 참조하십시오.
sn_ih_kafka 네임스페이스에서 실행됩니다.ProducerV2 - send(String topicSysID, String key, String message, Boolean isSync, Object headers, String schemaID)
지정된 메시지를 지정된 Kafka 주제에 보냅니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 주제SysID | 문자열 | 메시지를 게시할 주제의 Sys_id입니다. 주제는 Kafka 주제 [sys_kafka_topic] 테이블에 저장됩니다. |
| 키 | 문자열 | 주제의 특정 파티션에 대한 키의 이름입니다. |
| 메시지 | 문자열 | 메시지 텍스트입니다. |
| isSync | 부울 | 계속하기 전에 send 메서드가 완료될 때까지 스크립트를 기다려야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
| 헤더 | 객체 | 키-값 쌍으로 정의된 메시지의 헤더입니다. 예를 들어, var headers = { "origin": "sn_business_rule" };
|
| 스키마 ID | 문자열 | 스키마 기록의 Sys_id입니다. 스키마를 사용하여 일반 텍스트 메시지를 Avro 메시지로 변환하거나 그 반대로 변환하는 경우 필요합니다. 스키마는 Stream Connect 스키마 [stream_connect_schema] 테이블에 저장됩니다. 자세한 내용은 Schema management in Stream Connect 문서를 참조하십시오. |
| 객체 속성 | 설명 |
|---|---|
| 배달 | Kafka 생산자 제공. 매개변수에 대해 설정된 값을 반영합니다 isSync . 가능한 값:
데이터 유형: 문자열 |
| 오프셋 | Hermes Kafka의 주제 파티션에 있는 메시지의 오프셋입니다. 이 값은 동기 전달에 대해서만 반환됩니다. 데이터 유형: 숫자 |
| 파티션 | 메시지가 저장되는 주제의 파티션입니다. 이 값은 동기 전달에 대해서만 반환됩니다. 데이터 유형: 숫자 |
비동기 전달
이 예에서는 f9d083f3ff610210ef7343d3653bf12e의 스키마를 사용하여 변경된 인시던트 정보를 sys_id sys_id 75135aa2ff0311105cf343d0653bf155인 Kafka 주제로 보내는 방법을 보여줍니다.
var message = {
'number': current.number.toString(),
'short_description': current.short_description.toString(),
'caller_id': current.caller_id.getDisplayValue(),
'priority': current.priority.toString(),
'state': current.state.toString()
};
var headers = {
'origin': 'sn_business_rule'
};
var producer = new sn_ih_kafka.ProducerV2();
producer.send('75135aa2ff0311105cf343d0653bf155', gs.generateGUID(), JSON.stringify(message), false, headers, 'f9d083f3ff610210ef7343d3653bf12e');
동기식 제공
이 예제에서는 Kafka 메시지의 반환 값을 가져오는 방법을 보여 줍니다.
var message = "Defect fix";
var producer = new sn_ih_kafka.ProducerV2();
var response = producer.send('63820c0e1b492210dcff64e5604bcb93', gs.generateGUID(), JSON.stringify(message), true, null);
gs.log("Partition was "+response.partition);
gs.log("Offset was :"+response.offset);
gs.log("Delivery was :"+response.delivery);
출력:
*** Script: Partition was 1
*** Script: Offset was :258072
*** Script: Delivery was :sync