Estou tentando migrar do ActiveMQ Classic para o ActiveMQ Artemis e tenho um conector TCP duplex configurado no Classic.
Tentei definir uma configuração de federação e vejo que os endereços multicast são retransmitidos corretamente. Não vejo endereços anycast recebendo uma cópia. Posso ver por que isso é esperado, dada a definição de anycast, mas quero ser capaz de reproduzir a mesma semântica do Classic (onde eu tinha uma fila do Classic que encaminhava todas as suas mensagens).
Para maior clareza, tenho dois corretores, A e B, e tenho o corretor B (secundário) configurado com um upstream de A e um downstream para A com uma referência upstream de B. Tenho uma política de endereço de correspondência de todos os endereços em esse. O corretor A não tem configuração de federação.
Estou observando que os endereços multicast criados em A parecem ser replicados em B, o que mostra que o upstream de B para A parece funcionar. Mas anycast (filas JMS criadas em vez de tópicos) não parece ser criado em B. Espero que isso funcione como um duplex correspondendo a todas as filas/tópicos no Classic.
Minha expectativa é que cada mensagem enviada para a fila do corretor A seja recebida por alguém inscrito na mesma fila pelo nome no corretor B. Em outras palavras, espero que, ao produzir em A e consumir em B, receberei as mesmas mensagens como se Eu estava consumindo em A. Na verdade, quero que todas as mensagens publicadas em A sejam retransmitidas para B e vice-versa para todos os endereços.
Vejo que a documentação afirma:
Um endereço federado pode replicar mensagens publicadas de um endereço upstream para um endereço local. Nota: Isto só é suportado com endereços multicast.
A documentação que você citou refere-se especificamente à capacidade da federação de replicar ou copiar mensagens enviadas para um endereço multicast em um corretor para o mesmo endereço multicast em outros corretores federados. Dessa forma, você pode obter semântica de pub/sub (ou seja, tópico JMS) em toda uma rede de corretores federados.
Esse comportamento específico não funciona com endereços anycast porque eles aderem à semântica ponto a ponto (ou seja, fila JMS). Todos os consumidores em uma fila JMS compartilham (ou seja, competem por) as mensagens dessa fila. Replicar ou copiar essas mensagens para outros nós federados quebraria a semântica básica de entrega.
No entanto, retransmitir ou encaminhar uma mensagem de um intermediário para outro via federação funcionará para endereços anycast, mas não é o mesmo que replicar ou copiar essas mensagens. O encaminhamento de mensagens é baseado na demanda do consumidor.
Além disso, vale a pena notar que os clientes JMS não se inscrevem em uma fila como fariam com um tópico. Eles simplesmente criam um consumidor.