Como gerenciar namespaces no Hermes

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Agrupe tópicos do Kafka para simplificar a gestão de tópicos e a especificação de controle de acesso usando namespaces.

    Em ServiceNow, todos os tópicos do Kafka são vinculados a um namespace. Você pode usar namespaces para organizar tópicos de maneiras lógicas. Por exemplo, você pode agrupar tópicos com base no cluster do Kafka. Você também pode usar namespaces para configurar quais domínios podem acessar quais tópicos em uma instância separada por domínio. Você atribui tópicos a domínios da ServiceNow usando o namespace do tópico.

    Registros de namespace

    Os registros de namespace são armazenados na tabela Namespaces do Kafka [sys_kafka_namespace]. Esta tabela mostra uma lista de registros de namespace com o prefixo de tópico relacionado de cada namespace. Um administrador com a função kafka_namespace_admin cria registros de namespace na tabela Namespaces do Kafka [sys_kafka_namespace].

    Namespaces e prefixos de tópico

    Um tópico é atribuído a um namespace com base no prefixo do nome do tópico. Um trabalho programado verifica regularmente Hermes em busca de novos tópicos. Quando encontra um, ele cria um registro de tópico ServiceNow para o tópico e vincula o tópico a um namespace. O prefixo atribuído ao tópico é a base para sua atribuição de namespace em ServiceNow.

    Esta imagem mostra um exemplo de uso do prefixo de nome de cluster Kafka para organizar tópicos em diferentes namespaces em ServiceNow.

    Figura 1. Prefixos do Kafka e namespaces de tópico
    Visão geral de como os prefixos de tópico no Kafka estão relacionados aos namespaces na ServiceNow.

    Neste exemplo:

    1. Um administrador de instância com a função kafka_namespace_admin cria registros de namespace para o grupo Análise de log, o grupo Execução e outra subsidiária na instância ServiceNow.
    2. O administrador da instância trabalha com o administrador do Kafka para replicar tópicos para Hermes usando o nome do cluster Kafka como o prefixo do namespace.
    3. O cluster Kafka para o grupo de execução tem um tópico chamado material_orders. O tópico é replicado para Hermes usando execução como o prefixo do namespace. Um novo tópico é criado em Hermes chamado cumprimento.material_orders.
    4. Um trabalho programado encontra o tópico Fulfillment.material_orders em Hermes, cria um registro de tópico e atribui o registro ao namespace de execução para corresponder ao seu prefixo.

    Regras de correspondência de prefixo

    Os prefixos de nome de tópico correspondem aos namespaces de acordo com as regras a seguir.

    • O namespace é selecionado com base no prefixo de namespace correspondente mais longo. Se houver um namespace correspondente, o registro do tópico será atribuído a esse namespace e ao domínio desse namespace.
    • Se não houver um prefixo de namespace mais longo correspondente, o prefixo de comprimento zero do Namespace padrão corresponderá. O registro do tópico é atribuído ao Namespace padrão no domínio global.
    • Se o Namespace padrão tiver sido excluído ou modificado, portanto, não há nenhum namespace correspondente, nenhum registro de tópico será criado.

    Considerações sobre design de namespace

    Planeje como deseja organizar seus namespaces e tópicos antes de começar a criá-los. Depois de adicionar um tópico a um namespace, você não pode excluir o namespace sem excluir os tópicos associados a ele.

    Tenha um namespace para cada domínio em uma instância separada por domínio
    Crie um namespace por domínio ServiceNow.
    Use namespaces para organizar tópicos por domínio e instalação do Kafka
    Use namespaces para separar tópicos que pertencem a domínios ServiceNow separados e tópicos de instalações separadas do Kafka.
    Depois de configurar seus namespaces, considere excluir ou desativar o Namespace padrão
    Manter o Namespace padrão pode levar a problemas de configuração, como um prefixo de tópico incompatível. Essa incompatibilidade pode resultar em um tópico que deveria ter sido criado em um domínio sendo criado no domínio global.

    Você pode impor restrições mais rígidas sobre onde os tópicos são criados, excluindo o Namespace padrão. Por exemplo, se você decidir que todos os tópicos devem ter um prefixo que corresponda a um namespace, a exclusão do Namespace padrão garantirá que os tópicos sem um prefixo correspondente não sejam criados.

    Para obter detalhes sobre como usar o Domain Separation com namespaces em Hermes, consulte Serviço de envio de mensagens Hermes Domain Separation.