[英]How to choose the right protocol and network connection for using ActiveMQ?
最近,我開始在新項目中使用ActiveMQ充當消息中間件,這是我第一次嘗試使用ActiveMQ,這是我在使用以前公司內部的消息框架(如Swallow)之前參與的項目。 因此,在開始實施該系統之前,需要清除一些設計要點。
我們系統中的案例將使用ActiveMQ,包括發送郵件,將任務發送到隊列以及從隊列執行任務,異步請求/響應, 那么哪種協議和網絡連接是我們案例的正確選擇? 我在這里列出了一些協議和網絡連接選項:
ActiveMQ協議 :
MQTT
WS
Openwire
Stomp
Stomp
ActiveMQ網絡連接 :
VM
TCP
UDP
HTTP
Failover
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.