是否可以负载平衡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是开源的。 –