Usando Stream Connect para Apache Kafka

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 7 min. de leitura
  • Conecte seu ambiente Apache Kafka à sua instância [ ServiceNow com ServiceNow® Stream Connect para Apache Kafka.

    Apache Kafka é uma plataforma de fluxo de eventos distribuídos que fornece uma maneira unificada de trocar dados entre vários sistemas. Stream Connect vincula seu ambiente Kafka à sua instância ServiceNow, permitindo que você transmita dados entre sua instância e seus sistemas externos.

    Nota:
    Stream Connect para Apache Kafka requer uma assinatura Mecanismo de automação e uma assinatura Stream Connect para Apache Kafka. Para obter mais informações, consulte https://www.servicenow.com/products/automation-engine.html.

    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 é integrado ao Workflow Studio, fornecendo uma maneira low-code de 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 do produtor do Kafka em Workflow Studio
    • 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 no Workflow Studio
    • Extrair consumidor de carga de transformação (ETL)
    • Consumidor de mapa de transformação
    • 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 Kafka do qual as mensagens serão consumidas e o número de partições que o tópico tem. 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 do consumidor que está lendo o tópico. Para obter mais informações, consulte Exibição de assinaturas e estatísticas do Kafka.

    Partições do grupo

    Um grupo de partição é um conjunto de partições de tópico. Por exemplo, se um tópico tiver seis partições, elas poderão ser divididas em três grupos de partição, com duas partições em cada grupo.

    Trabalho do consumidor do Kafka

    Um trabalho que verifica regularmente o Hermes em busca de novos eventos em um tópico. O trabalho seleciona 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 Workflow Studio, 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 Serviço de envio de mensagens Hermes.

    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 do Hermes.

    Figura 1. Visão geral dos componentes do Stream Connect
    Diagrama que mostra os componentes do Stream Connect e como eles se relacionam com o Kafka, ServiceNowe o Serviço de envio de mensagens Hermes.

    Stream Connect e Workflow Studio

    Crie fluxos que produzem e consomem eventos do Kafka com Stream Connect e Workflow Studio. A Conexão de fluxo 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 Kafka especificado. Ao usar o gatilho de mensagem do Kafka, você não precisa criar um fluxo ou registro de assinatura do Kafka. O sistema cria automaticamente ambos quando o fluxo é ativado. As mensagens são lidas a partir do tópico, desde que o fluxo esteja ativo.

    Use a etapa Produtor do Kafka para criar ações que publicam eventos em um tópico em seu ambiente Kafka. Por exemplo, você pode usar a etapa para criar uma mensagem sobre uma atualização em um incidente em ServiceNowe enviar a mensagem por push para um tópico em seu ambiente Kafka.

    Suporte para mensagens em formato Avro

    Importe e crie esquemas para enviar e receber mensagens em um formato Apache Avro. O uso de um formato Avro pode reduzir o tamanho da carga e simplificar sua integração com a instância local do Kafka.

    Você pode importar esquemas Avro diretamente do Registro do Confluent ou pode criar seus próprios esquemas usando um arquivo JSON ou uma cadeia de caracteres no formato JSON. Os esquemas são armazenados em ServiceNow e permitem que produtores e consumidores convertam mensagens de texto sem formatação em um formato Avro e vice-versa. Para obter detalhes, consulte Gestão de esquemas no Stream Connect.

    ETL, mapa de transformação e consumidores de script

    Importe dados do 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 estão estruturados ou exigem pesquisas de dados usando código.

    Quando você Configurar um consumidor de ETL (Extrair, Transformar e Carregar), Configurar um consumidor de mapa de transformaçãoou Configurar um consumidor de script, também precisa Criar um fluxo do Kafka.

    API ProducerV2

    Publique eventos em um tópico Kafka com a API ProducerV2.

    Replicação de mensagem de conexão de fluxo

    Você pode replicar dados entre o ambiente Kafka e ServiceNow com a replicação de mensagem de conexão de fluxo.

    A replicação de mensagens do Stream Connect permite que você configure e gerencie replicações de mensagens diretamente da 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. Ele 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 de conexão de fluxo.

    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 agendado, Nova tentativa do produtor do Kafka, lê regularmente esta tabela e tenta reenviar todas 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 rotacionada, portanto, ela limpa os registros automaticamente.

    Domain Separation

    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 tópicos em ServiceNow namespaces e vincule os namespaces a domínios específicos. Para obter mais informações, consulte Domain Separation e Stream Connect.

    Plug-in

    O Stream Connect requer o plug-in ServiceNow Stream Connect Installer [com.glide.hub.stream_connect.installer]. Este plug-in permite que os componentes licenciados trabalhem com dados de streaming baseados em mensagens no Stream Connect.