Sou novo no ActiveMQ. Estou tentando executar um broker incorporado com vários conectores. Imagino que cada conector tenha sua própria codificação (ou seja, um conector que lida com POJOs (ObjectMessage), um conector diferente que lida com json, outro com yaml, outro com xml, etc.). Imagino ainda poder enviar uma mensagem para um tópico e, então, ter essa mensagem distribuída para vários clientes, cada um codificado pela forma como eles se conectaram.
Isso é possível?
Essa visão é a maneira correta de organizar as coisas?
Tentei usar um MessageTransformer, mas ele parece ser aplicado no nível da sessão.
Uma pergunta um pouco não relacionada: devo usar o ActiveMQ clássico ou o Artemis?
Nem o ActiveMQ Artemis nem o ActiveMQ Classic funcionam da maneira que você descreve.
Ambos suportam certos protocolos de mensagens (por exemplo, AMQP, STOMP, MQTT). Os clientes usam esses protocolos para enviar mensagens em essencialmente qualquer formato que desejarem.
Os consumidores também podem usar esses protocolos para consumir mensagens. Mensagens enviadas por um protocolo podem ser consumidas por um protocolo diferente. Dessa forma, o broker atua como uma plataforma de integração para que múltiplos processos diferentes, potencialmente escritos em múltiplas linguagens diferentes e em múltiplas plataformas diferentes, possam interoperar.
É possível alterar o formato de uma mensagem quando ela chega ao broker (por exemplo, por meio de um transformador ), mas normalmente os autores dos produtores e consumidores concordam com um formato de dados e o usam para facilitar a interoperabilidade.