本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RabbitMQ 4.2
Amazon MQ 支援 RabbitMQ 4.2 RabbitMQ 作為 4 系列的第一個版本。 RabbitMQ 4.2 引入 AMQP 1.0 作為核心通訊協定,Khepri 作為預設中繼資料存放區,規定人數佇列訊息優先順序,以及新的身分驗證外掛程式,包括 mTLS 和 HTTP 身分驗證。如需此版本的詳細資訊,請參閱 GitHub 網站上的 RabbitMQ4.0.0 版本備註
Amazon MQ RabbitMQ 4.2 版中的新功能和增強功能
-
AMQP 1.0 作為核心通訊協定:如需詳細資訊,請參閱通訊協定。
-
Local Shovels:Shovels 現在除了 AMQP 0-9-1 和 AMQP 1.0 之外,還支援名為 "local" 的新通訊協定。本機 Shovel 在內部以 AMQP 1.0 為基礎,但不是使用單獨的 TCP 連線,而是在叢集節點和內部 APIs 之間使用叢集內連線來發佈和取用訊息。這只能用於在相同叢集內消費和發佈,並且可以在使用比 AMQP 0-9-1 和 AMQP 1.0 更少的資源時提供更高的輸送量。
-
配額佇列支援訊息優先順序:配額佇列訊息優先順序一律處於作用中狀態,不需要政策。當規定人數佇列收到優先順序設定的訊息時,就會啟用優先順序。配額佇列僅支援兩個內部優先順序層級:高和正常。
RabbitMQ 會將沒有優先順序的訊息,並將優先順序為 0–4 的訊息映射至正常。優先順序高於 4 的訊息會映射至高。高優先順序訊息以 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 身分驗證和授權。
-
JMS 支援:中介裝置現在支援已啟用 JMS 主題交換外掛程式的 JMS 工作負載,允許 JMS 應用程式使用 RabbitMQ JMS 用戶端
進行連線。 -
可設定的儲存大小:部署在 CLUSTER_MULTI_AZ 模式中的 RabbitMQ 4.x 代理程式支援可設定的 EBS 儲存大小。如需詳細資訊,請參閱 mq.m7g 執行個體類型。
Amazon MQ RabbitMQ 上的 4.2 中的已棄用功能
-
鏡像傳統佇列:繼續支援傳統佇列,而不會對用戶端程式庫和應用程式進行任何中斷變更,但它們現在是非複寫佇列類型。用戶端將能夠連線到任何節點,以從任何未複寫的傳統佇列發佈和取用。為了複寫和資料安全,建議使用配額佇列。
-
移除全域 QoS:建議客戶設定每個消費者 QoS (非全域),而不是全域 QoS,其中整個頻道使用單一共用預先擷取。
-
支援暫時性、非專屬佇列:暫時性佇列是生命週期連結至其宣告節點執行時間的佇列。在單一執行個體代理程式中,它們會在節點重新啟動時移除。在叢集部署中,它們會在其託管的節點重新啟動時移除。我們建議在閒置一段時間後,使用佇列 TTL 自動刪除未使用的閒置佇列。系統會繼續支援排入佇列,並在移除佇列的所有連線後刪除。
在 RabbitMQ Amazon MQ 上中斷 4.2 中的變更
下列開放原始碼變更可能會在升級至 4.2 RabbitMQ 時影響您的應用程式。升級代理程式之前,請檢閱這些變更。
-
預設佇列類型:4 RabbitMQ 個代理程式的預設佇列類型設定為規定人數。如果在建立佇列期間未指定佇列類型引數,則會建立規定人數佇列。
-
規定人數佇列的預設重新傳遞限制設定為 20:重新傳遞 20 次以上的訊息將會以無效字母表示或捨棄 (已移除)。如果每個訊息 20 個傳遞是佇列的常見案例,則必須為此類佇列設定無效字母目標或更高限制,以避免資料遺失。建議的做法是透過政策。
-
amqplib:早於 0.10.7 的節點 JS 用戶端 amqplib 版本,或任何使用 frame_max < 8192 的 AMQP 用戶端程式庫將無法連線至 RabbitMQ
-
預設資源限制:適用於 的 Amazon MQ RabbitMQ已針對連線、頻道、每個頻道的取用者、佇列、虛擬主機、鮑魚、交換和訊息大小上限引入預設資源使用限制。這些可做為保護代理程式可用性的護欄,並且可以使用組態進行自訂,以符合您的特定需求。