1

我正在尝试将 Apache Artemis 代理与 Amazon MQ 代理连接以创建混合架构。我尝试将 ActiveMQ 与 Amazon MQ 连接起来,我可以通过在 broker.xml 文件中使用“网络连接器”来实现它,并且效果很好。

为了连接 Amazon MQ 和 Artemis 代理,我在 Artemis broker.xml 文件中添加了如下所示的“网桥配置”和“连接器”

<bridges>
    <bridge name="my-bridge">
        <queue-name>factory</queue-name>
        <forwarding-address>machine</forwarding-address>
        <filter string="name='rotor'"/>
        <reconnect-attempts>-1</reconnect-attempts>             
        <user>admin</user>
        <password>12345678</password>
        <static-connectors>                   
            <connector-ref>netty-ssl-connector</connector-ref>
        </static-connectors>
    </bridge>
</bridges>

<connectors> 
    <connector name="netty-ssl-connector">ssl://b-...c-1.mq.us-west-2.amazonaws.com:61617?sslEnabled=true;</connector>
</connectors>

我遇到了一个例外:找不到ssl 架构。

所以我想了解连接 Artemis 和 AmazonMQ 代理是否与连接 Activemq 和 AmazonMQ 代理相同(即通过更改 broker.xml 文件中的配置)?如果是这样,我需要对上面显示的配置进行哪些更改?

4

1 回答 1

1

ActiveMQ Classic(即 5.x)和 Amazon MQ 使用 OpenWire 协议在代理网络中建立连接。ActiveMQ Artemis 支持使用 OpenWire 协议的客户端。然而,ActiveMQ Artemis 使用自己的“核心”协议进行桥接和集群。因此,您将无法创建从 ActiveMQ Artemis 到 ActiveMQ Classic 或 Amazon MQ 的桥梁,因为这些代理不了解 Artemis“核心”协议。

ssl模式由 OpenWire 客户端使用,而不是“核心”客户端。这就是为什么你不能使用它来创建一个 Artemis 桥。

如果您想集成 Artemis 和 Amazon MQ,我会推荐 Camel 之类的东西,甚至可能是 Artemis 附带的 JMS 桥。您可以在Artemis 附带的这个示例中看到这两个示例。

于 2019-11-19T20:11:59.933 回答