当我们在独立的ActiveMQ上配置SSL时,我们可能需要在客户端代码中提供TrustStore、TrustStore Password、KeyStore和KeyStore密码才能通过SSL协议连接到ActiveMQ,但在Amazon MQ的情况下,虽然它们提供了SSLendpoint,但我们可以简单地连接到它,而无需提供信任和密钥相关值。
SSL上的简单ActiveMQ的客户端代码片段:
ActiveMQSslConnectionFactory connFactory = new ActiveMQSslConnectionFactory("ssl://<someHost>:61617");
String trustStore = "pathTo/client_new.ts";
String keyStore = "PathTo/client_new.ks";
try {
connFactory.setTrustStore(trustStore);
connFactory.setTrustStorePassword("password");
connFactory.setKeyStore(keyStore);
connFactory.setKeyStorePassword("password");
} catch (Exception e) {
e.printStackTrace();
}
AmazonMQSSL的客户端代码片段:
ActiveMQConnectionFactory connFactory = new ActiveMQConnectionFactory("ssl://xyz.amazonaws.com:61617");
基本上,是什么造成了这种差异?
首先,Amazon MQ工作在ActiveMQ之上,Amazon在activeMQ上编写了一个包装层,因此从功能上来说,它的工作原理几乎相同。Amazon MQ是ActiveMQ的托管消息代理服务
。它管理与空间相关的一切,在不同区域配置主动/被动endpoint,以及以下链接中提到的一些好处。
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html
amazonMQ的其他好处是您可以设置警报等,作为使用亚马逊其他服务的一部分,例如将actiemq版本升级到最新版本。
现在到您的应用程序部分,一件好事是您通过SSL连接配置Activemq的方式,虽然Activemq公开了tcpendpoint,也可以通过简单地提供代理连接URL但在amazonMQ的情况下,它不公开任何TCPendpoint,唯一的连接方式是提供SSLendpoint和相关参数。
参考此链接如何应用程序连接到amazonMQ:https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-connecting-application.html