簡體   English   中英

通過 Java 服務連接 Amazon documentDB 和 Amazon MQ

[英]Connect with Amazon documentDB & Amazon MQ from Java Service

我的用例是連接亞馬遜 documentDB 以讀取更改 stream 並將更改 stream 事件從同一服務發送到亞馬遜 MQ,然后將其部署到 EKS 集群上。 在讀取 rds-combined-ca-bundle.pem 中指定的密鑰並通過 docker 入口點中的以下條目將其導入本地信任存儲后,我能夠連接 documentDB:

"-Djavax.net.ssl.trustStorePassword=*********","-Djavax.net.ssl.trustStore=/app/certs/truststore.jks",

在與 documentDB 建立連接並讀取更改 stream 后(只要集合中有插入、替換或刪除),我正在嘗試通過 openwire 協議將更改 stream 事件發送到亞馬遜 MQ,當我嘗試創建與 MQ 的連接時在 Amazon MQ 文檔中指定,我收到異常

Could not stablish connection with ssl://X-XXXXXXX-XXX-XXX-XXX-XXXXXX-1.mq.us-east-1.amazonaws.com:61617 due to PKIX javax.net.ssl.sslhandshakeexception

我知道問題出在哪里。 當我部署我的服務而不在 docker 入口點為 documentDB 指定信任庫條目時,它會與 MQ 連接,我也可以將模擬事件發送到 MQ,但是當我指定信任庫時使用 documentDB,服務也會在信任庫中查找 MQ 的證書這實際上不是 MQ 所必需的,因為它由 AWS 管理。 我們不需要使用 Amazon MQ 指定信任庫和密鑰庫。

那么我的問題是如何從同一服務連接 Amazon documentDB 和 Amazon MQ? 我的要求是從 documentDB 讀取更改 ZF7B44CFFAFD5C52223D5498196C8A2E7BZ 事件並將其從同一服務發送到亞馬遜 MQ。 我正在使用一個簡單的 java 服務,但如果有一些具體的解決方案可用,可以將其轉換為 spring 引導。

我嘗試為 MQ 搜索任何 pem 文件,我可以使用類似於 documentDB 的方式使用它,但正如我之前提到的,Amazon MQ 是 Active MQ 的托管服務,因此沒有可用的 pem 文件。

有人可以為此提出一些解決方案嗎?

最后,我通過將證書明確添加到與 AWS 服務建立連接所需的本地信任庫中來解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM