Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-01-10 GMT+08:00

Criação de um tópico

Um tópico é um fluxo de mensagens. Se a criação automática de tópicos não estiver ativada durante a criação da instância do Kafka, você precisará criar tópicos manualmente para criar e recuperar mensagens. Se a criação automática de tópicos tiver sido ativada para a instância, essa operação será opcional.

Se a criação automática de tópicos estiver ativada, o sistema cria automaticamente um tópico quando uma mensagem é criada ou recuperada de um tópico que não existe. Este tópico tem as seguintes configurações padrão: 3 partições, 3 réplicas, tempo de envelhecimento de 72 horas e replicação síncrona e liberação desabilitadas. Depois de alterar o valor do parâmetro log.retention.hours, default.replication.factor ou num.partitions, os tópicos criados automaticamente mais tarde usem o novo valor. Por exemplo, se num.partitions for definido como 5, um tópico criado automaticamente terá as seguintes configurações: 5 partições, 3 réplicas, tempo de envelhecimento de 72 horas e replicação síncrona e liberação desabilitadas.

Há um limite no número total de partições nos tópicos. Quando o limite de quantidade de partição é atingido, você não pode mais criar tópicos. O número total de partições varia de acordo com as especificações da instância. Para obter detalhes, consulte Especificações.

Métodos que podem ser usados para criar manualmente um tópico:

Se um nó de instância estiver com defeito, um erro de serviço interno poderá ser relatado quando você consultar mensagens em um tópico com apenas uma réplica. Portanto, não é aconselhável usar um tópico com apenas uma réplica.

As instâncias criadas desde 17 de maio de 2023 não têm o Kafka Manager. Não é possível criar tópicos para essas instâncias usando Kafka Manager.

Método 1: criar um tópico no console

  1. Faça logon no console de gerenciamento.
  2. Clique em no canto superior esquerdo para selecionar uma região.

    Selecione a região onde sua instância do Kafka está localizada.

  3. Clique em e escolha Middleware > Distributed Message Service (for Kafka) para abrir o console do DMS for Kafka.
  4. Clique na instância do Kafka desejada para exibir os detalhes da instância.
  5. No painel de navegação, escolha Topics. Em seguida, clique em Create Topic.

    Figura 1 Criação de um tópico

  6. Especifique os parâmetros de tópico listados na tabela a seguir.

    Tabela 1 Parâmetros do tópico

    Parâmetro

    Descrição

    Topic Name

    Ao criar um tópico, você pode modificar o nome do tópico gerado automaticamente.

    Depois que o tópico é criado, você não pode modificar seu nome.

    Partitions

    Um número maior de partições para um tópico indica mais mensagens recuperadas simultaneamente.

    Se este parâmetro for definido como 1, as mensagens serão recuperadas na ordem FIFO.

    Intervalo de valores: 1 a 200

    Valor padrão: 3

    Replicas

    Um número maior de réplicas proporciona maior confiabilidade. O backup dos dados é feito automaticamente em cada réplica. Quando um broker de Kafka torna-se defeituoso, os dados ainda estão disponíveis em outros brokers.

    Se esse parâmetro for definido como 1, somente um conjunto de dados estará disponível.

    Valor padrão: 3

    NOTA:

    Se um nó de instância estiver com defeito, um erro de serviço interno poderá ser relatado quando você consultar mensagens em um tópico com apenas uma réplica. Portanto, não é aconselhável usar um tópico com apenas uma réplica.

    Aging Time (h)

    O período durante o qual as mensagens são retidas. Os consumidores devem recuperar as mensagens antes que esse período termine. Caso contrário, as mensagens serão apagadas e não poderão mais ser recuperadas.

    Intervalo de valores: 1 a 720

    Valor padrão: 72

    Synchronous Replication

    Uma mensagem é retornada ao cliente somente depois que a solicitação de criação de mensagem foi recebida e a mensagem foi reconhecida por todas as réplicas.

    Depois de ativar a replicação síncrona, defina acks como all ou –1 no cliente. Caso contrário, esta função não terá efeito.

    Se houver apenas uma réplica, a replicação síncrona não pode ser ativada.

    Synchronous Flushing

    Um indicador de se uma mensagem é imediatamente liberada para o disco uma vez criada.

    • Ativada: uma mensagem é imediatamente liberada no disco assim que é criada, resultando em maior confiabilidade.
    • Desativada: uma mensagem é armazenada na memória em vez de ser imediatamente descarregada no disco depois de criada.

    Message Timestamp

    Tipo de carimbo de data/hora de uma mensagem. Opções:

    • CreateTime: momento em que o produtor criou a mensagem.
    • LogAppendTime: hora em que o broker anexou a mensagem ao log.

    Max. Tamanho da mensagem

    Tamanho máximo de processamento em lote permitido pelo Kafka. Se a compressão de mensagens estiver ativada, este parâmetro indica o tamanho após a compressão.

    Se esse valor for aumentado e a versão do consumidor for anterior a 0.10.2, o tamanho da busca dos consumidores também deve ser aumentado para que eles possam obter o tamanho aumentado.

    Description

    Descrição do tópico.

  7. Clique em OK.

Método 2: criar um tópico no Kafka Manager

Efetue logon no Kafka Manager, escolha Topic > Create e defina os parâmetros conforme solicitado.

Figura 2 Criar um tópico no Kafka Manager

Se um nome de tópico começar com um caractere especial, por exemplo, um sinal de número (#), os dados de monitoramento não poderão ser exibidos.

Método 3: criar um tópico usando a CLI do Kafka

Se o seu cliente for v2.2 ou posterior, você pode usar kafka-topics.sh para criar tópicos e gerenciar parâmetros de tópico.

  • Se um nome de tópico começar com um caractere especial, por exemplo, um sinal numérico (#), os dados de monitoramento não podem ser exibidos.
  • Para uma instância com SASL ativada, se allow.everyone.if.no.acl.found estiver definido como false, os tópicos não poderão ser criados por meio do cliente.
  • Se a SASL não estiver habilitada para a instância do Kafka, execute o seguinte comando no diretório /{directory where the CLI is located}/kafka_{version}/bin/ para criar um tópico:
    ./kafka-topics.sh --create --topic {topic_name} --bootstrap-server {broker_ip}:{port} --partitions {partition_num} --replication-factor {replication_num}
  • Se a SASL tiver sido habilitada para a instância do Kafka, execute os seguintes passos para criar um tópico:
    1. (Opcional) Se a configuração do certificado SSL tiver sido definida, ignore esta etapa. Caso contrário, execute as seguintes operações:

      Crie o arquivo ssl-user-config.properties no diretório /config do cliente de Kafka e adicione as configurações de certificado SSL consultando 3.

    2. Execute o seguinte comando no diretório /{directory where the CLI is located}/kafka_{version}/bin/ para criar um tópico:
      ./kafka-topics.sh --create --topic {topic_name} --bootstrap-server {broker_ip}:{port} --partitions {partition_num} --replication-factor {replication_num} --command-config ./config/ssl-user-config.properties