我是 ActiveMQ 的新手。我正在尝试运行一个带有多个连接器的嵌入式代理。我设想每个连接器都有自己的编码(即一个连接器处理 POJO(ObjectMessage),另一个连接器处理 json,另一个连接器处理 yaml,另一个连接器处理 xml,等等)。我进一步设想能够向主题发送一条消息,然后将该消息分发给各个客户端,每个客户端都根据它们的连接方式进行编码。
这可能吗?
这个愿景是正确的设置方式吗?
我尝试过使用 MessageTransformer,但它似乎应用于会话级别。
有一个稍微不相关的问题:我应该使用经典的 ActiveMQ 还是 Artemis?
ActiveMQ Artemis 和 ActiveMQ Classic 均不按您描述的方式运行。
它们都支持某些消息传递协议(例如 AMQP、STOMP、MQTT)。客户端使用这些协议以他们想要的任何格式发送消息。
消费者也可以使用这些协议来消费消息。通过一种协议发送的消息可以通过另一种协议消费。这样,代理就充当了一个集成平台,这样可能用多种不同语言和在多个不同平台上编写的多个不同流程就可以互操作。
当消息到达代理时,可以更改消息的格式(例如通过转换器),但通常生产者和消费者的作者会就数据格式达成一致,并使用它来促进互操作性。