簡體   English   中英

如何為使用ActiveMQ選擇正確的協議和網絡連接?

[英]How to choose the right protocol and network connection for using ActiveMQ?

最近,我開始在新項目中使用ActiveMQ充當消息中間件,這是我第一次嘗試使用ActiveMQ,這是我在使用以前公司內部的消息框架(如Swallow)之前參與的項目。 因此,在開始實施該系統之前,需要清除一些設計要點。

我們系統中的案例將使用ActiveMQ,包括發送郵件,將任務發送到隊列以及從隊列執行任務,異步請求/響應, 那么哪種協議和網絡連接是我們案例的正確選擇? 我在這里列出了一些協議和網絡連接選項:

ActiveMQ協議

  1. MQTT
  2. WS
  3. Openwire
  4. Stomp
  5. Stomp

ActiveMQ網絡連接

  1. VM
  2. TCP
  3. UDP
  4. HTTP
  5. Failover
  6. Discovery

我還將考慮系統的HA和群集方面,因此有人可以給我一些想法來決定如何選擇協議和網絡連接嗎?

非常感謝。

一直以來,Openwire一直是默認協議,NIO傳輸可以通過TCP改善性能,因此如果您使用ActiveMQ作為唯一的代理,則可以使用其中之一。 但是,使用AMQP意味着將來您可能會使用RabbitMQ(另一種流行的Message Broker)。 還有其他一些,STOMP或MQTT是輕量級的,VM被設計為在應用程序與代理位於同一台計算機上時使用,從而獲得很高的吞吐量。

由於ActiveMQ默認情況下可以啟用所有協議,因此請進行一些快速測試,以了解正在構建的特定應用程序的吞吐量。 然后在做出決定時考慮以上幾點。

關於UDP,TCP,HTTP,我會選擇TCP。 UDP不可靠,而TCP每秒發送1000個就足夠了。 如果您的公司有笨拙的防火牆規則,HTTP可能會有用。

我將其包裝在故障轉移傳輸中。 我從未使用過發現功能,但會認為這是更高級的功能,最初並不需要,因為它需要發現代理。 它的唯一目的也是動態發現ActiveMQ代理(盡管您仍然必須知道發現代理的位置)。

暫無
暫無

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

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