我的用例是连接 amazon documentDB 以读取更改流并在 EKS 集群上部署该更改流事件后从同一服务将其发送到 amazon MQ。在读取 rds-combined-ca-bundle.pem 中指定的密钥并通过 docker 入口点中的以下条目将其导入本地信任存储后,我能够与 documentDB 连接:
"-Djavax.net.ssl.trustStorePassword=*********","-Djavax.net.ssl.trustStore=/app/certs/truststore.jks",
在与 documentDB 建立连接并读取更改流后(只要集合中有插入、替换或删除),我试图通过 openwire 协议将更改流事件发送到亚马逊 MQ,当我试图创建与 MQ 的连接时在 Amazon MQ 文档中指定,我收到异常
由于 PKIX javax.net.ssl.sslhandshakeexception,无法与 ssl://X-XXXXXXX-XXX-XXX-XXX-XXXXXX-1.mq.us-east-1.amazonaws.com:61617 建立连接
我知道问题出在哪里。当我在没有在 docker 入口点为 documentDB 指定信任库条目的情况下部署我的服务时,它会与 MQ 连接,并且我也可以将模拟事件发送到 MQ,但是当我指定信任库时使用 documentDB,服务也会在信任库中查找 MQ 的证书这实际上不是 MQ 所必需的,因为它由 AWS 管理。我们不需要使用 Amazon MQ 指定信任库和密钥库。
那么我的问题是如何从同一服务连接 Amazon documentDB 和 Amazon MQ?我的要求是从 documentDB 读取更改流事件并将其从同一服务发送到 amazon MQ。我正在使用一个简单的 java 服务,但如果有一些具体的解决方案可用,可以将其转换为 Spring Boot。
我尝试为 MQ 搜索任何 pem 文件,我可以使用类似于 documentDB 的方式使用它,但正如我之前提到的,Amazon MQ 是 Active MQ 的托管服务,因此没有可用的 pem 文件。
有人可以为此提出一些解决方案吗?