

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon MQ for RabbitMQ 中代理程式設定和連線管理的最佳實務
<a name="best-practices-broker-setup"></a>

 中介裝置設定和連線管理是防止中介裝置訊息輸送量、資源使用率和處理生產工作負載能力問題的第一步。[建立和設定 Amazon MQ for RabbitMQ 代理程式](getting-started-rabbitmq.md#create-rabbitmq-broker)時，請完成下列最佳實務，以選取適當的執行個體類型、有效管理連線，以及設定訊息預先擷取以最大化代理程式的效能。

**重要**  
Amazon MQ for RabbitMQ 不支援使用者名稱「訪客」，並且會在您建立新的代理程式時刪除預設訪客帳戶。Amazon MQ 也會定期刪除任何客戶建立的帳戶，稱為「訪客」。

## 步驟 1：使用叢集部署
<a name="use-cluster-deployments-for-high-availability"></a>

 對於生產工作負載，我們建議使用叢集部署，而不是單一執行個體代理程式，以確保高可用性和訊息彈性。叢集部署會移除單一故障點，並提供更好的容錯能力。

 叢集部署由分佈在三個可用區域的三個 RabbitMQ 代理程式節點組成，提供自動容錯移轉，並確保即使整個可用區域無法使用，操作仍可繼續。Amazon MQ 會自動複寫所有節點的訊息，以確保節點故障或維護期間的可用性。

 叢集部署對於生產環境至關重要，並受 [Amazon MQ 服務水準協議](https://aws.amazon.com/amazon-mq/sla/)支援。

 如需詳細資訊，請參閱 [Amazon MQ for RabbitMQ 中的叢集部署](rabbitmq-broker-architecture.md#rabbitmq-broker-architecture-cluster)。

## 步驟 2：選擇正確的代理程式執行個體類型
<a name="choose-broker-instance-type"></a>

 代理程式執行個體類型的訊息輸送量取決於您的應用程式使用案例。 `M7g.medium`應僅用於測試應用程式效能。在生產環境中使用較大的執行個體之前，使用此較小的執行個體可以改善應用程式效能。在執行個體類型 `m7g.large` 和更高版本上，您可以使用叢集部署以獲得高可用性和訊息耐久性。較大的中介裝置執行個體類型可以處理用戶端和佇列的生產層級、高輸送量、記憶體中的訊息和備援訊息。

 如需選擇正確執行個體類型的詳細資訊，請參閱 [Amazon MQ for RabbitMQ 中的調整大小準則](rabbitmq-sizing-guidelines.md)。

## 步驟 3：使用規定人數佇列
<a name="use-quorum-queues"></a>

 對於 3.13 及更高版本的 RabbitMQ 代理程式，在生產環境中複寫佇列類型的預設選擇應該是使用叢集部署的配額佇列。配額佇列是一種現代複寫佇列類型，可提供高可靠性、高輸送量和穩定的延遲。

 配額佇列使用 Raft 共識演算法來提供更好的容錯能力。當領導節點無法使用時，仲裁佇列會自動透過多數投票來選擇新的領導，確保訊息傳遞以最小的中斷繼續。由於每個節點位於不同的可用區域，即使整個可用區域暫時無法使用，您的簡訊系統仍會保持可用狀態。

 若要宣告規定人數佇列，請在建立佇列`x-queue-type``quorum`時將 標頭設定為 。

 如需規定人數佇列的詳細資訊，包括遷移策略和最佳實務，請參閱 [Amazon MQ for RabbitMQ 中的規定人數佇列](quorum-queues.md)。

## 步驟 4：使用多個頻道
<a name="use-multiple-channels"></a>

 若要避免連線流失，請透過單一連線使用多個頻道。應用程式應避免 1：1 連線到頻道比率。我們建議針對每個程序使用一個連線，然後針對每個執行緒使用一個頻道。避免過度使用頻道，以防止頻道洩漏。