As federation tasks utilizam streams de eventos do EventBridge para implementar a capacidade do Federation Plugin open-source, permitindo sincronizar e replicar metadados e mensagens entre clusters.
Observações de uso
As federation tasks atualmente suportam apenas federation de exchange (sincronização de mensagens de exchange para exchange). A federation de filas ainda não está disponível.
Verifique se o tamanho máximo de mensagem na instância RabbitMQ de destino é pelo menos igual ao tamanho máximo de mensagem na instância de source. Se o limite do destino for menor, as mensagens que excedem esse limite falham no roteamento, o que causa falha na sincronização.
Faturamento
As federation tasks geram cobranças adicionais compostas por dois componentes:
Custo total = taxas do ApsaraMQ for RabbitMQ + taxas de encaminhamento do EventBridge
Preços do ApsaraMQ for RabbitMQ: Para mais informações, consulte a documentação de faturamento do ApsaraMQ for RabbitMQ.
Preços do EventBridge: Para mais informações, consulte a documentação de faturamento do EventBridge.
Pré-requisitos
Instâncias do ApsaraMQ for RabbitMQ: a instância e o Vhost de source ou a instância e o Vhost de destino devem estar criados e disponíveis.
O EventBridge deve estar ativado.
Cluster RabbitMQ open-source (se aplicável): se a source ou o destino for um cluster RabbitMQ open-source, verifique se o plugin
rabbitmq_event_exchangeestá ativado. Para mais informações, consulte Enable the rabbitmq_event_exchange plugin.
Criar uma federation task
Para criar uma federation task, siga as etapas a seguir: crie uma tarefa, autorize o serviço, configure as informações do cluster, configure os parâmetros da tarefa e verifique o status da tarefa.
Etapa 1: Criar uma tarefa
Acesse o console do ApsaraMQ for RabbitMQ.
No painel de navegação à esquerda, clique em Federation Tasks.
Na página Federation Tasks, clique em Create Task.
Etapa 2: Autorizar o serviço
Ao criar uma federation task pela primeira vez, o sistema cria automaticamente uma service-linked role chamada AliyunServiceRoleForEventBridgeRabbitMQPlugin.
Na caixa de diálogo Alibaba Cloud Service Authorization, revise os detalhes de autorização e clique em Confirm.
Descrição da função: AliyunServiceRoleForEventBridgeRabbitMQPlugin é uma service-linked role que permite ao EventBridge implementar a capacidade do plugin RabbitMQ.
Etapa 3: Configurar as informações do cluster
Configure as informações do cluster de source e de destino.
Parâmetros de configuração do cluster
|
Categoria |
Parâmetro |
Descrição |
Exemplo |
|
Open-source RabbitMQ |
URL |
O endpoint do cluster RabbitMQ open-source. A porta padrão é 5672. |
192.168.1.1 |
|
Username |
O nome de usuário do cluster RabbitMQ open-source. |
admin |
|
|
Password |
A senha do cluster RabbitMQ open-source. |
pass***word |
|
|
VPC |
O ID da VPC da rede onde o cluster RabbitMQ open-source reside. |
vpc-2zehiozskjdbb3*** |
|
|
vSwitch |
O ID do vSwitch da rede onde o cluster RabbitMQ open-source reside. |
vsw-m5hksicnqou22*** |
|
|
Security group |
O ID do grupo de segurança do host onde o cluster RabbitMQ open-source está implantado. |
sg-2ca1jjhsdxciap*** |
|
|
Virtual Host |
O Vhost do cluster RabbitMQ open-source. |
test-001 |
|
|
ApsaraMQ for RabbitMQ |
Instance |
O ID da instância do ApsaraMQ for RabbitMQ. |
amqp-cn-s1q2ksbq*** |
|
Virtual Host |
O Vhost da instância do ApsaraMQ for RabbitMQ. |
test-001 |
Etapa 4: Configurar os parâmetros da tarefa
Configure os parâmetros de tarefa a seguir.
Configuração dos parâmetros da tarefa
|
Categoria |
Parâmetro |
Descrição |
Opções / Exemplo |
|
Parâmetros da tarefa |
Task name |
O nome da federation task. |
federation-task-001 |
|
Ordering |
Define se as mensagens são sincronizadas em ordem: |
- Concurrent |
|
|
Parâmetros de federation exchange |
Max hops |
O número máximo de hops que uma mensagem pode percorrer pelos links de federation. Mensagens que excedem esse limite são descartadas. |
1 |
|
Exchange expression |
Uma expressão regular que corresponde a um ou mais nomes de exchange. Os exchanges que correspondem a essa expressão são sincronizados para o cluster de source. |
.* |
Etapa 5: Verificar o status da tarefa
A tarefa criada aparece na página Federation Tasks com o status inicial Starting.
Quando o status mudar para Running, a federation task foi iniciada com sucesso.
Melhores práticas
1. Planeje o Max hops com cuidado
Para sincronizações ponto a ponto simples, defina o valor como 1.
Em topologias de federation com múltiplos hops, defina o valor com base na profundidade real da topologia.
Evite definir um valor excessivamente alto para não permitir que mensagens sejam encaminhadas em loop.
2. Use expressões de exchange precisas
Use expressões regulares precisas para corresponder apenas aos exchanges que precisam ser sincronizados.
Evite expressões abrangentes como
.*para não sincronizar exchanges desnecessários.-
Exemplos:
Para corresponder todos os exchanges que começam com "order":
^order.*Para corresponder exchanges específicos pelo nome:
^(order|payment|inventory)$
3. Escolha o modo de ordenação adequado
Concurrent: Mais indicado para cenários em que a ordenação das mensagens não é crítica. Proporciona maior throughput.
Sequential: Recomendado para cenários que exigem ordenação estrita das mensagens, como processamento de pedidos ou transições de estado.
4. Monitore e configure alertas
Verifique periodicamente o status das federation tasks.
Configure alertas para acúmulo de mensagens.
Monitore a latência de sincronização para identificar problemas com antecedência.
5. Planeje sua rede
Verifique se a latência de rede entre os clusters de source e de destino está dentro de um intervalo aceitável.
Para sincronização entre regiões, considere usar o Express Connect ou uma VPN para melhorar a estabilidade da rede.
Planeje as regras de VPC e de grupo de segurança para garantir a conectividade de rede.
Perguntas frequentes
A federation task está travada no estado "Starting". O que devo fazer?
Verifique os seguintes itens:
Verifique se os clusters de source e de destino têm conectividade de rede.
Confirme se as credenciais do cluster (nome de usuário e senha) estão corretas.
Confirme se o EventBridge está ativado e autorizado.
Verifique as mensagens de erro no console e resolva os problemas identificados.
Como solucionar atrasos ou perdas na sincronização de mensagens?
Atrasos: Verifique o uso de largura de banda da rede e considere otimizar o tamanho das mensagens ou aumentar a largura de banda.
Perdas: Confirme se o limite de tamanho de mensagem na instância de destino é pelo menos igual ao limite da instância de source. Verifique se a configuração de Max hops está adequada. Confirme também se a exchange expression corresponde corretamente aos exchanges de destino.
É possível modificar uma federation task após a criação?
As federation tasks não podem ser modificadas após a criação. Para alterar a configuração, exclua a tarefa existente e crie uma nova.
A federation suporta sincronização bidirecional?
As federation tasks são unidirecionais. Para obter sincronização bidirecional, crie duas federation tasks em direções opostas.
Referências
Para mais informações sobre o Federation Plugin open-source, consulte Federation Plugin.