Como gerenciar tópicos no Hermes

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 4 min. de leitura
  • Gerencie registros de tópico em sua instância e tópicos do Kafka no Hermes cluster do Kafka usando o Serviço de envio de mensagens Hermes.

    Registros de tópico

    As mensagens são organizadas e armazenadas em tópicos do Kafka no cluster Hermes do Kafka. Os registros de tópico são armazenados na tabela Tópicos do Kafka [sys_kafka_topic] em sua instância. Esta tabela mostra uma lista de registros de tópicos com uma referência ao namespace de cada tópico. Cada registro de tópico tem um campo para o nome do tópico, o namespace relacionado e se o tópico está ativo.

    Um trabalho programado é executado regularmente para sincronizar registros de tópico com os tópicos encontrados em Hermes. Este trabalho executa as seguintes funções:
    • Cria registros de tópico para todos os tópicos descobertos, atribuindo-os ao namespace apropriado com base no prefixo do nome do tópico.
    • Sincroniza tópicos criados a partir de fontes externas, como a interface de linha de comando (CLI) do Kafka. Por exemplo, quando um tópico é criado a partir de uma origem externa no cluster próximo, o trabalho é executado e cria o tópico no cluster distante também.
    • Registra em log uma mensagem de aviso se um tópico não puder ser correspondido a qualquer namespace. Se um tópico não puder ser correspondido a nenhum namespace, o registro do tópico não será criado. Há um namespace padrão sem prefixo chamado Namespace padrão que corresponde a todos os tópicos. A única vez em que um tópico não corresponde a nenhum namespace é quando o Namespace padrão foi excluído ou modificado.
    • Marca os tópicos como inativos se nenhum tópico do Kafka for encontrado para eles.

    Você pode monitorar e exibir tópicos no cluster Hermes Kafka usando o inspetor de tópicos. Para obter mais informações, consulte Tópicos de monitoramento no cluster Kafka Hermes.

    Criando tópicos

    Você pode criar tópicos no cluster Hermes do Kafka usando um dos seguintes métodos:
    • Crie o tópico a partir da sua instância. Isso cria um registro na tabela Tópicos do Kafka [sys_kafka_topic] e cria um tópico do Kafka no cluster Hermes do Kafka. Consulte Criar um tópico em Hermes.
    • Crie o tópico externamente. Por exemplo, crie o tópico usando a interface de linha de comando (CLI) do Kafka.
      Nota:
      Para evitar problemas de sincronização entre o cluster e sua instância, inclua o ID da aplicação ao criar tópicos externamente. Por exemplo, sem o ID da aplicação, um tópico criado a partir da CLI do com um nome como snc.instancename.fulfillment.topicname é criado no namespace padrão em vez do namespace de execução. Para garantir que o tópico seja criado no namespace de execução, inclua o ID da aplicação no nome usando o formato snc.instancename.fulfillment.app_id.topicname. Substitua app_id pelo ID da aplicação de sua escolha.

    Se, por algum motivo, um tópico não puder ser criado no cluster Hermes do Kafka, ele também não será criado na tabela Tópicos do Kafka [sys_kafka_topic].

    Atualizando tópicos

    Se necessário, você pode alterar o número de partições em um tópico. Observe que você só pode aumentar o número de partições em um tópico. Para obter mais informações, consulte Atualizar um tópico em Hermes.

    Depois de criado, o namespace atribuído a um registro de tópico é permanente. Se você criar um registro de namespace e quiser mover tópicos existentes para ele, deverá excluir os tópicos e recriá-los no Hermes cluster Kafka com o novo prefixo de namespace. Se os tópicos não foram criados por meio da instância, novos registros de tópico serão criados e atribuídos ao registro de namespace correspondente após uma nova verificação.

    Excluindo tópicos

    Você pode excluir tópicos do cluster Kafka Hermes usando um dos seguintes métodos:
    • Exclua o tópico diretamente da tabela Tópicos do Kafka [sys_kafka_topic] em sua instância. Esse método exclui automaticamente o tópico de todos os clusters Kafka Hermes em uma ação. Veja Excluir um tópico em Hermes
    • Exclua o tópico externamente. Por exemplo, exclua o tópico usando a interface de linha de comando (CLI) do Kafka.
      Importante:
      A exclusão externa do tópico requer a exclusão do tópico de ambos os clusters Hermes manualmente, especificando cada conjunto de portas (410x e 420x). Se possível, exclua o tópico por meio da instância.

    Você não pode excluir um tópico se ele tiver assinaturas em Stream Connect para Apache Kafka.

    Tópicos de nova verificação

    A nova verificação cria registros de tópico para todos os tópicos no cluster Hermes do Kafka que ainda não tenham registros de tópico correspondentes. Por exemplo, se você criar tópicos em Hermes usando a CLI do, poderá verificar novamente para criar registros de tópico correspondentes na tabela Tópicos do Kafka [sys_kafka_topic] imediatamente, em vez de aguardar o trabalho programado para criá-los.

    • A nova verificação ocorre automaticamente a cada dez minutos.
    • Os registros de tópico criados são atribuídos a namespaces existentes com base nas regras de correspondência de prefixo.
    Às vezes, os registros de tópico em sua instância não correspondem ao que está em Hermes. Essa situação pode acontecer nos seguintes casos:
    • Quando o plug-in ServiceNow IntegrationHub Kafka Consumer (com.glide.hub.kafka_consumer) é habilitado depois que já existem tópicos em Hermes.
    • Quando registros de tópico são excluídos acidentalmente.
    • Quando as definições de namespace são alteradas e você deseja atribuir tópicos existentes aos novos namespaces.