Descrição do problema
Após a ativação da idempotência, o cliente recebe a mensagem de erro Cluster authorization failed ao enviar mensagens.
Causas
O tópico utilizado possui armazenamento em nuvem. Tópicos desse tipo não oferecem suporte à idempotência.
O remetente da mensagem não tem a permissão
IDEMPOTENT_WRITEno cluster. Em tópicos com armazenamento local e ACL ativado, o broker do ApsaraMQ for Kafka verifica automaticamente essa permissão. Sem ela, o envio da mensagem falha.
Soluções
-
Tópicos de armazenamento em nuvem para não oferecem suporte à idempotência. Desative o recurso definindo
enable.idempotence=falseno producer.NotaA idempotência é ativada automaticamente em clientes ApsaraMQ for Kafka versão 3.0 ou superior. O parâmetro
enable.idempotenceé definido como true automaticamente. Conceda as permissões ACL necessárias ao cluster. Na página de gerenciamento de permissões SASL no console, use a caixa de diálogo Add Permission: especifique o usuário, defina Resource Type como Cluster, configure Matching Method como Exact Match e selecione IDEMPOTENT_WRITE em Operation Type. Para mais informações, consulte Usar ACL para controle de acesso.