我應該將 Broker 部署在我的 JVM 還是應用伺服器中?

 常見問題 > 使用 Apache ActiveMQ Classic > 我應該將 Broker 部署在我的 JVM 還是應用伺服器中?

您可以將 ActiveMQ Classic Broker 部署在您的 JVM 或應用程式伺服器中。是否這樣做取決於您的 JVM 數量以及您的備份與復原策略,各有優缺點。

嵌入 Broker 的優點

  • 嵌入 Broker 意味著您可以使用 VM 傳輸,這樣可以避免使用 Socket 和序列化。ActiveMQ Classic 可以改用傳遞值的方式來傳遞訊息。
    • 唯一的例外是 ObjectMessage;JMS 規範說明,您每次發送 ObjectMessage 時都必須序列化其主體。但是,如果您想在使用 VM 傳輸時獲得真正的高效能,您可以停用此功能
  • 它只有一個單一部署單元/JVM,而不是兩個耦合的進程。

嵌入 Broker 的缺點

如果您有很多 JVM(例如數百個),並且有非常嚴格的要求;您不希望丟失任何訊息,因此您需要非常小心地備份和管理持久的 ActiveMQ Classic 資料庫(和/或檔案)。

在每個 JVM 中都嵌入一個 Broker 可能會導致需要管理大量檔案集。因此,將兩者分開可能會更簡單,這樣您的數百個 JVM 可以與相對較小的 Broker 叢集(例如 2-10 個)通訊,以便您可以避免擔心每個 JVM 中的持久狀態,而只需專注於備份和管理 Broker 使用的檔案/資料庫。

此外,當 ActiveMQ Classic Broker 分開運行和管理時,通常更容易;當嘗試將 ActiveMQ Classic 嵌入應用程式伺服器時,可能會遇到一些 ClassLoader 問題。例如,您有時可能會遇到 ClassPath 錯誤

請參閱

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 The Apache Software Foundation 的商標。版權所有 © 2024,The Apache Software Foundation。根據 Apache 授權 2.0 授權。