是否可以負載平衡MQTT中介?我可以使用ELB來平衡MQTT嗎?任何在這個方向的指針都會有所幫助。我打了http://www.slideshare.net/kellogh/mqtt-kafka-33100776但它沒有多大幫助。負載平衡MQTT中介
回答
使用HAProxy。免費,快速和可靠的解決方案,爲基於TCP和HTTP的應用程序提供高可用性,負載平衡和代理。它適用於非常高流量的網站。
大多數MQTT代理不支持負載均衡MQTT代理。雖然有支持羣集的代理。看一下this list找出一個適合你的集羣需求的經紀人。
本博客文章是有點過時,但如果你想了解MQTT經紀人集羣可能仍然是有用的:http://www.hivemq.com/building-a-high-availability-mqtt-cluster/
要回答你的問題:MQTT經紀人HiveMQ與AWS ELB完美地適用於跨多個負載均衡可用區域。您可能希望將TCP連接的默認ELB超時增加到您用於應用程序的MQTT保持活動時間。如果需要,您甚至可以使用Auto Scaling組進行彈性縮放。 HiveMQ可以使用S3來發現其他集羣節點,因此您可以在運行時添加和刪除集羣節點。
我不知道其他經紀人是否可以像AWS ELB一樣無縫工作。如果HiveMQ不適合您的需求,最好的辦法是在上面鏈接的列表中搜索經紀商並嘗試它:)
聲明:我正在爲開發HiveMQ的公司工作。
我更喜歡HAProxy
到AWS ELB
,因爲您可以在IaaS或PaaS上獲得更多靈活性。
使用Docker可以看到haproxy-mqtt。核心haproxy.cfg
文件是here。
您不能加載餘額MQTT代理,就像負載均衡Web服務器一樣! LB解決方案必須在MQTT主題字段中保留連接,而不是客戶端的IP:端口...否則不是所有訂戶都會獲得發佈的消息。 「發佈者」消息僅發送給單個MQTT代理,因此只有該代理纔會重新發送消息。如果相同MQTT主題的'訂閱者'轉到其他代理,則不會從連接到其他代理的發佈者接收消息。當然,您可以連接您的MQTT經紀商,以便他們全部都能收到信息,但那麼LB-ing他們有什麼意義?在這一點上,你並沒有真正擴展它們,這可能就是爲什麼你想要把它們放在第一位。可以使用F5 BIG-IP來執行真正的MQTT LB,IF您可以創建iRule腳本來執行MQTT主題上的LB決策 。今天有些公司正在這樣做。
- 1. 負載平衡
- 2. 負載平衡
- 3. Tomcat負載平衡
- 4. WebLogic負載平衡
- 5. Drupal負載平衡
- 6. ADAM負載平衡
- 7. PgPool2負載平衡
- 8. 負載平衡AWS
- 9. 流負載平衡
- 10. ASP.Net負載平衡
- 11. Azure負載平衡器
- 12. ArcGIS Server 9.3.1負載平衡
- 13. Nginx的負載平衡
- 14. Pentaho Carte負載平衡
- 15. JBoss和Apache負載平衡
- 16. 負載平衡,Spring Security,ConcurrentSessionFilter
- 17. 窮人的負載平衡
- 18. RavenDB的負載平衡
- 19. Hadoop MapReduce負載平衡
- 20. AWS負載平衡器
- 21. SSL和負載平衡
- 22. IIS負載平衡和ASP.Net
- 23. 負載平衡器配置
- 24. WLS負載平衡查詢
- 25. 負載平衡問題
- 26. apache(httpd)負載平衡
- 27. IIS網絡負載平衡
- 28. 彈性負載平衡
- 29. Netty負載平衡器
- 30. HTTP負載平衡行爲
對於專用MQTT負載平衡,Elastic Beam也可能是一種可行的替代方法:http://www.hivemq.com/blog/scalable-and-secure-mqtt-load-balancing-with-elastic-beam-and- hivemq/ –
Elastic Beam是一個付費應用程序,而HA Proxy是開源的。 –