微服务内部通信与消息推送:RabbitMQ的AMQP与MQTT选型及共存问题
问题解答
1. 是否可使用AMQP进行微服务内部通信,同时使用MQTT向移动端及Web浏览器推送通知?
完全可以。
- AMQP协议具备丰富的路由规则、消息确认机制、事务支持等特性,非常适配购物车、订单、商品、支付这类对消息可靠性、复杂业务流转有要求的微服务内部通信场景,能保障服务间交互的稳定性。
- MQTT是轻量级、低功耗的消息协议,专为带宽有限、设备资源受限的场景设计,很适合给移动端、Web浏览器推送通知类消息,这类场景对消息的实时性要求高,但对消息复杂度要求较低。
两者的应用场景互补,完全可以在同一套RabbitMQ架构下分别使用。
2. RabbitMQ是否支持同时使用AMQP与MQTT两种协议,还是只能二选一?
RabbitMQ支持同时运行AMQP和MQTT两种协议,并非二选一。
RabbitMQ本身是多协议消息中间件,MQTT支持通过官方插件实现(默认未启用),只需要执行启用命令开启MQTT插件即可:
rabbitmq-plugins enable rabbitmq_mqtt
开启后,RabbitMQ可以同时监听AMQP(默认5672端口)和MQTT(默认1883端口)的连接请求,不同客户端分别使用对应协议接入即可,彼此互不影响。
内容的提问来源于stack exchange,提问作者Pooja
相关产品推荐
相关产品推荐

