Uma exchange encaminha mensagens de produtores para uma ou mais filas ou as descarta com base em chaves de roteamento. Cada tipo de exchange aplica regras de roteamento diferentes. No console do Alibaba Cloud Message Queue for RabbitMQ, crie exchanges, visualize estatísticas, configure bindings e envie mensagens de teste.
Criar uma exchange
Faça login no console do ApsaraMQ for RabbitMQ. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior da página Instances, selecione a região da instância que deseja gerenciar. Em seguida, na lista de instâncias, clique em nome da instância desejada.
No painel de navegação à esquerda, clique em Exchanges.
Na página Exchanges, selecione um vhost na lista suspensa Change ao lado de vhost e clique em Create Exchange.
-
No painel Create Exchange, insira o Exchange Name, selecione o Type, especifique se a exchange é internal e clique em OK.
Parâmetro
Descrição
Exchange Name
Nome da exchange. Nomes com o prefixo
amq.são reservados. Por exemplo,amq.testé inválido.Type
Tipo da exchange. Valores válidos:
-
direct: Encaminha mensagens para filas cuja chave de binding corresponda exatamente à chave de roteamento.
-
topic: Semelhante ao direct, mas suporta correspondência de padrões com curingas entre a chave de roteamento e a chave de binding.
-
fanout: Encaminha todas as mensagens para cada fila vinculada, funcionando como broadcast.
-
headers: Roteia mensagens comparando atributos do cabeçalho da mensagem com atributos de binding, ambos especificados como pares chave-valor. Não utiliza chave de roteamento.
-
x-delayed-message: Defina o cabeçalho x-delay na mensagem para especificar um atraso em milissegundos. Após o período x-delay, a mensagem é roteada conforme o tipo de roteamento da exchange definido em x-delayed-type.
-
x-consistent-hash: Aplica hash a uma chave de roteamento ou valor de cabeçalho e usa hash consistente para distribuir mensagens entre as filas.
x-delayed-type
Obrigatório quando Type é
x-delayed-message. Especifica o tipo de roteamento da exchange.Hash value
Obrigatório quando Type é
x-consistent-hash. Define o tipo de entrada para o cálculo de hash. Valores válidos:-
Routing Key
-
Header Value: Se selecionado, também é necessário especificar o parâmetro hash-header.
hash-header
Necessário quando Type é
x-consistent-hashe Hash value é Header Value. Chave de cabeçalho usada como entrada para o cálculo de hash.Internal
Define se a exchange é interna. Padrão: No. Valores válidos:
-
Yes: A exchange é interna e usada apenas para bindings entre exchanges.
-
No: A exchange não é interna e serve para bindings entre exchange e fila.
-
Visualizar estatísticas
Consulte diversas métricas de monitoramento para identificar e resolver problemas rapidamente.
Na página Exchanges, localize a exchange desejada e clique em Details na coluna Actions.
-
Na página Exchange Details, clique em aba Monitoring and Alerting ou Dashboard.
As estatísticas disponíveis variam conforme a edição da instância:
Enterprise Edition e Enterprise Platinum Edition: Permitem visualizar métricas do Application Real-Time Monitoring Service (ARMS) para Prometheus e Grafana. Para mais detalhes sobre o painel e suas métricas, consulte Painel.
-
As edições Standard e Professional fornecem dados de monitoramento pelo CloudMonitor. Para mais informações sobre as métricas, consulte Métricas de monitoramento.
NotaO ApsaraMQ for RabbitMQ não oferece mais novas instâncias da Standard Edition. Esta informação aplica-se apenas às instâncias da Standard Edition existentes.
Vincular uma exchange a uma fila
Vincule uma exchange a uma fila para permitir o roteamento de mensagens.
Na página Exchanges, localize a exchange desejada e clique em Bound as Source na coluna Actions.
Na página Exchange Details, clique em aba Bound as Source e clique em Add Binding.
-
No painel Add Binding, defina Type of Destination to Bind como Queue, selecione uma fila em Destination to Bind, configure a Routing Key e clique em OK.
NotaPara exchanges do tipo x-consistent-hash, a Routing Key representa o peso da fila e deve ser um número inteiro de 1 a 20.
Se existir um binding duplicado, apenas o primeiro binding válido terá efeito.
Para alterar o peso de uma fila vinculada, exclua o binding existente e adicione um novo.

Vincular uma exchange a outra exchange
Vincule uma exchange a outra exchange como destino. As mensagens são encaminhadas da origem para o destino com base nas regras de roteamento.
Na página Exchanges, localize a exchange desejada e clique em Bound as Source na coluna Actions.
Na página Exchange Details, clique em aba Bound as Source e clique em Add Binding.
-
No painel Add Binding, defina Type of Destination to Bind como Exchange, selecione uma exchange em Destination to Bind, configure a Routing Key e clique em OK.

Vincular uma exchange como destino
Vincule uma exchange de origem à exchange atual, tornando-a o destino. As mensagens são encaminhadas da origem conforme as regras de roteamento.
Na página Exchanges, localize a exchange desejada e clique em Details na coluna Actions.
Na página Exchange Details, clique em aba Bound as Destination e clique em Add Binding.
-
No painel Add Binding, selecione uma Source Exchange e insira uma chave de roteamento na caixa de texto Routing Key. O campo Type of Destination to Bind tem como padrão Exchange, e a Destination Exchange assume automaticamente esta exchange. Clique em OK.

Enviar uma mensagem
Após criar um binding, envie uma mensagem de teste diretamente pelo console. A mensagem será roteada para a fila ou exchange de destino vinculada.
Na página Exchanges, localize a exchange desejada e clique em Details na coluna Actions.
Na página Exchange Details, clique em aba Bound as Source ou Bound as Destination.
Na lista de bindings, localize o binding desejado e clique em Send Message na coluna Actions.
No painel Send Message exibido, insira um Message ID e o Message Body e clique em OK.
Excluir uma exchange
A exclusão de uma exchange é irreversível. Produtores não poderão mais enviar mensagens para ela e todo o roteamento será interrompido.
Não é possível excluir exchanges do tipo headers.
As três exchanges integradas de um vhost não podem ser excluídas:
amq.direct,amq.topiceamq.fanout.
Na página Exchanges, clique em nome da exchange que deseja excluir. Na página Exchange Details, clique em Delete no canto superior direito.
Na caixa de diálogo Confirmation, leia a mensagem e clique em OK.