Como usar Stream Connect para Apache Kafka.
Conecte seu ambiente Apache Kafka à sua instância [ ServiceNow com Stream Connect para Apache Kafka.
Apache Kafka é uma plataforma de streaming de eventos distribuídos que fornece uma maneira unificada de trocar dados entre vários sistemas. Stream Connect para Apache Kafka vincula seu ambiente Kafka à sua instância ServiceNow, permitindo que você transmita dados entre sua instância e seus sistemas externos.
Benefícios
Publicar e processar eventos do Kafka em grande escala. Publicar eventos no ambiente Kafka de sua instância da ServiceNow e consumir eventos do Kafka de seus sistemas externos com um alto volume e baixa latência.
- Crie fluxos que produzem e consomem eventos do Kafka. O Stream Connect está integrado ao Flow Designer, fornecendo uma maneira de baixo código para publicar e processar mensagens do Kafka.
- Importe dados do seu ambiente Kafka e processe esses dados usando o Mecanismo de Transformação Robusta (RTE) existente ou as configurações do mapa de transformação.
- Configure um consumidor que usa seus próprios scripts para processar dados de um tópico do Kafka.
- Monitore o desempenho de seus consumidores com relatórios detalhados de estatísticas e métricas de desempenho.
Componentes
O Stream Connect tem os seguintes componentes.
- Produtores
Um produtor publica eventos em um ambiente Kafka. O Stream Connect tem dois produtores.
- Etapa Produtor do Kafka em Flow Designer
- API ProducerV2
- Consumidores
Um consumidor lê e processa eventos de um ambiente Kafka. O Stream Connect tem vários consumidores.
- Gatilho de mensagem do Kafka em Flow Designer
- Extrair consumidor de carga de transformação (ETL)
- Transformar consumidor de mapa
- Consumidor de script
- Tópicos e namespaces de tópico
Os eventos são organizados e armazenados em tópicos. Um tópico armazena eventos do mesmo tipo. Os tópicos são particionados. Os eventos têm uma chave. Eventos com a mesma chave são armazenados na mesma partição.
Os tópicos são vinculados a um namespace de tópico. Você pode usar namespaces para organizar tópicos de maneiras lógicas. Por exemplo, você pode agrupar tópicos com base no cluster Kafka de onde eles vêm. Você também pode usar namespaces para configurar quais domínios podem acessar quais tópicos em uma instância separada por domínio. Para obter mais informações, consulte Managing namespaces and topics in Hermes.
- Assinaturas
Uma assinatura é um registro associado a um consumidor. Ele armazena informações de configuração sobre o consumidor, como o nome do tópico do Kafka para consumir mensagens e o número de partições que o tópico possui. O registro de assinatura é criado quando um fluxo do Kafka é ativado.
Cada registro de assinatura tem várias métricas que permitem exibir o desempenho da leitura do consumidor do tópico. Para obter mais informações, consulte Exibição de assinaturas e estatísticas do Kafka.
- Grupos de partição
Um grupo de partições é um conjunto de partições de tópico. Por exemplo, se um tópico tiver seis partições, ele poderá ser dividido em três grupos de partições, com duas partições em cada grupo.
- Trabalho do consumidor do Kafka
Um trabalho que verifica regularmente a Hermes em busca de novos eventos em um tópico. O trabalho escolhe um grupo de partição livre e recupera sua assinatura. A assinatura fornece o nome do tópico e o trabalho verifica as partições em busca de mensagens para esse tópico.
- Fluxos do Kafka (não mostrados na imagem a seguir)
Um fluxo do Kafka é um registro que define o fluxo de dados para um consumidor. Se você estiver usando o gatilho de mensagem do Kafka em Flow Designer, o fluxo do Kafka será criado automaticamente para você. Se você estiver usando um consumidor diferente, precisará criar um manualmente.
Para vincular seu ambiente Kafka à sua instância ServiceNow, o Stream Connect usa o Serviço de envio de mensagens Hermes. O Serviço de envio de mensagens Hermes permite que sua instância produza e consuma grandes volumes de eventos do Kafka. Ele gerencia o fluxo de dados entre o ambiente Kafka e sua instância. Para obter mais informações, consulte Hermes Messaging Service.
O diagrama a seguir mostra os principais componentes do Stream Connect, como eles se relacionam com ServiceNow e aplicações de terceiros e como eles se conectam ao seu ambiente Kafka por meio da Hermes.
Stream Connect e Flow Designer
Crie fluxos que produzem e consomem eventos do Kafka com o Stream Connect e o Flow Designer. O Stream Connect tem um gatilho de fluxo para consumir eventos do Kafka e uma etapa de ação para produzi-los.
Use o gatilho de mensagem do Kafka para criar fluxos que processam eventos do Kafka. Você pode criar um fluxo que consome dados do Kafka e os insere em uma tabela ou usa spokes para comunicar os dados para ambientes de terceiros.
O gatilho é habilitado quando o fluxo é ativado. Depois de ativado, o gatilho inicia o fluxo sempre que há uma mensagem no tópico do Kafka especificado. Ao usar o gatilho de mensagem do Kafka, você não precisa criar um fluxo do Kafka ou registro de assinatura. O sistema cria automaticamente ambos quando o fluxo é ativado. As mensagens são lidas do tópico enquanto o fluxo estiver ativo.
Use a etapa Produtor do Kafka para criar ações que publicam eventos em um tópico no ambiente do Kafka. Por exemplo, você pode usar a etapa para criar uma mensagem sobre uma atualização em um incidente em ServiceNowe enviar a mensagem para um tópico em seu ambiente Kafka.
ETL, mapa de transformação e consumidores de script
Importe dados do seu ambiente Kafka usando o RTE existente ou as configurações do mapa de transformação. Os consumidores Extrair carga de transformação (ETL) e Transformar mapa simplificam suas importações de dados, fornecendo uma maneira eficiente de obter uma carga de uma mensagem do Kafka, transformar os dados e inserir ou atualizar um registro em uma tabela. Você pode alternar de uma importação de dados programada para uma usando o Stream Connect e processar os dados com as mesmas configurações.
Você também pode usar o Consumidor de script para processar dados do seu ambiente Kafka. O consumidor de script é para casos de uso mais avançados, como quando os dados na mensagem não são estruturados ou exigem pesquisas de dados usando código.
Quando você Configurar um consumidor de carga de transformação de extração (ETL), Configurar um consumidor de mapa de transformaçãoou Configurar um consumidor de script, também precisa de Criar um fluxo do Kafka.
API ProducerV2
Publique eventos em um tópico do Kafka com a API ProducerV2.
Replicação de mensagem do Stream Connect
Você pode replicar dados entre seu ambiente Kafka e ServiceNow com a Replicação de mensagem do Stream Connect.
A Replicação de mensagens do Stream Connect permite que você configure e gerencie replicações de mensagens diretamente da sua instância ServiceNow. Ele usa um MID Server para executar as replicações de dados, portanto, você não precisa configurar ou hospedar serviços de replicação adicionais. Também simplifica a configuração da replicação de mensagens, gerando automaticamente os certificados necessários.
Para obter mais informações, consulte Replicação de mensagem do Stream Connect.
Mensagens não processadas e não entregues
Se uma mensagem não puder ser entregue, ela será armazenada na tabela Mensagens não entregues do Kafka [sys_kafka_undelivered_messages]. Um trabalho programado, Repetição do Produtor do Kafka, lê regularmente esta tabela e tenta entregar novamente as mensagens.
Se um lote de mensagens não puder ser processado porque expirou, ele será armazenado na tabela Mensagens não processadas do Kafka [sys_kafka_unprocessed_messages]. O tempo limite de um lote de mensagens pode ser definido com a propriedade com.glide.kafka_consumer.timeout. O valor padrão é 60 segundos. Esta tabela é uma tabela girada, portanto, ela limpa os registros automaticamente.
Separação de Domínio
Use namespaces de tópico do Stream Connect para configurar quais domínios podem acessar um tópico do Kafka em uma instância separada por domínio. Agrupe os tópicos em namespaces ServiceNow e vincule os namespaces a domínios específicos. Para obter mais informações, consulte Domain Separation e Stream Connect para Apache Kafka.