本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RabbitMQ 4
Amazon MQ RabbitMQ 僅在所有支援的執行個體大小的 mq.m7g 執行個體類型上,支援 RabbitMQ 4 發行系列中的 RabbitMQ 4.2。
重要
您只能在 RabbitMQ 4.2 上建立新的代理程式。目前不支援從 RabbitMQ 3.13 進行就地升級。
重要
Amazon MQ for RabbitMQ 4.2 代理程式的預設佇列類型為「規定人數」。如果在建立佇列期間未指定佇列類型引數,則會建立規定人數佇列。
我們強烈建議在 RabbitMQ 4 上使用規定人數佇列來滿足耐久性需求,因為傳統佇列在所有情況下都無法保證耐用性。
下列變更已在 Amazon MQ 上的 RabbitMQ 4 中推出 Amazon MQ
-
AMQP 1.0 作為核心通訊協定:如需詳細資訊,請參閱通訊協定。
-
Local Shovels:Shovels 現在除了 AMQP 0-9-1 和 AMQP 1.0 之外,還支援稱為 "local" 的新通訊協定。本機鏟具是以 AMQP 1.0 為基礎,但不是使用單獨的 TCP 連線,而是在叢集節點和內部 APIs 之間使用叢集內連線來發佈和取用訊息。這只能用於在相同叢集內消費和發佈,並且可以在使用比 AMQP 0-9-1 和 AMQP 1.0 更少的資源時提供更高的輸送量。
-
配額佇列支援訊息優先順序:配額佇列訊息優先順序一律處於作用中狀態,不需要政策即可運作。一旦規定人數佇列收到具有優先順序設定的訊息,就會啟用優先順序。內部配額佇列僅支援兩個優先順序 - 高和正常。未設定優先順序的訊息將對應至正常,如同優先順序 0 - 4。優先順序高於 4 的訊息將映射至高。高優先順序訊息將以 2:1 的比例優先於一般優先順序訊息,也就是說,每 2 則高優先順序訊息,佇列將提供 1 則一般優先順序訊息 (如果有的話)。因此,規定人數佇列會實作一種非嚴格、「公平共享」的優先順序處理。這可確保在正常優先順序訊息上始終進行進度,但高優先順序是以 2:1 的比例有利。
-
Khepri:Khepri 用作 RabbitMQ 4 代理程式的預設中繼資料存放區
-
相互 TLS (mTLS):Amazon MQ 支援 RabbitMQ 代理程式的相互 TLS (mTLS),允許用戶端使用憑證進行身分驗證。如需詳細資訊,請參閱 mTLS 組態。
-
SSL 憑證驗證外掛程式:SSL 身分驗證外掛程式使用來自 mTLS 連線的用戶端憑證來驗證使用者,允許使用 X.509 用戶端憑證進行身分驗證,而非使用者名稱和密碼憑證。如需詳細資訊,請參閱 SSL 憑證身分驗證。
-
HTTP 身分驗證外掛程式:HTTP 身分驗證後端外掛程式允許將身分驗證和授權委派給外部 HTTP 服務。如需詳細資訊,請參閱 HTTP 身分驗證和授權。
下列功能已從 Amazon MQ 上的 RabbitMQ 4 取代 Amazon MQ
-
鏡射傳統佇列:繼續支援傳統佇列,而不會對用戶端程式庫和應用程式進行任何中斷變更,但它們現在是非複寫佇列類型。用戶端將能夠連線到任何節點,以從任何未複寫的傳統佇列發佈和取用。為了複寫和資料安全,建議使用配額佇列。
-
移除全域 QoS:建議客戶設定每個消費者 QoS (非全域),而不是全域 QoS,其中整個頻道使用單一共用預先擷取。
-
支援暫時性、非獨佔佇列:暫時性佇列是生命週期連結至其宣告節點執行時間的佇列。在單一執行個體代理程式中,它們會在節點重新啟動時移除。在叢集部署中,當其託管的節點重新啟動時,它們會被移除。我們建議在閒置一段時間後,使用佇列 TTL 自動刪除未使用的閒置佇列。系統會繼續支援排入佇列,並在移除佇列的所有連線後刪除。
在 Amazon MQ 上升級至 RabbitMQ 4.2 時,下列重大變更可能會影響您的應用程式
-
預設佇列類型:RabbitMQ 4 代理程式上的預設佇列類型設定為規定人數。如果在建立佇列期間未指定佇列類型引數,則會建立規定人數佇列。
-
規定人數佇列的預設重新傳遞限制設定為 20:重新傳遞 20 次或更多次的訊息將會以無效字母表示或捨棄 (已移除)。如果每則訊息 20 個傳遞是佇列的常見案例,則必須為此類佇列設定無效字母目標或更高限制,以避免資料遺失。建議的做法是透過政策執行。
-
amqplib:早於 0.10.7 的節點 JS 用戶端 amqplib 版本,或任何使用 frame_max < 8192 的 AMQP 用戶端程式庫將無法連線至 RabbitMQ
-
預設資源限制:Amazon MQ for RabbitMQ 已針對連線、頻道、每個頻道的取用者、佇列、虛擬主機、鮑魚、交換和訊息大小上限引入預設資源使用限制。這些可做為保護代理程式可用性的護欄,並且可以使用組態進行自訂,以符合您的特定需求。
Amazon MQ 上的 RabbitMQ 4 不支援下列功能
-
本機隨機交換:Amazon MQ 不支援本機隨機交換,因為 Amazon MQ 節點位於網路負載平衡器後方。
-
訊息攔截器:Amazon MQ 不支援 RabbitMQ 訊息攔截器
。 Amazon MQ -
每個佇列指標:Amazon MQ 不會透過 AWS CloudWatch 為 RabbitMQ 4 代理程式提供 RabbitMQ 佇列指標。Amazon MQ 仍會透過 AWS CloudWatch 提供代理程式層級指標。您可以使用 RabbitMQ 管理 API 查詢佇列指標。我們建議以一分鐘或更長的間隔頻率查詢特定佇列的指標。