ActiveMQ,使用amqp协议的问题,求帮助
看activemq的配置文档:
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
里面是5种协议,三个问题
1、怎么指定我要使用哪种协议?
2、指定协议的意义何在?什么情况下使用哪种协议?怎么选?
3、如果我使用amqp协议,怎么和其它mq产品(也用amqp协议)一起使用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1、客户端使用什么协议连broker,你就暴露什么协议。最小化原则。
2、指定协议是为了支持更多的方式来处理消息。
3、可以用camel、spring integration之类的EIP框架来实现互通,例如(http://blog.csdn.net/kimmking/article/details/24427383)。其实这种互通跟AMQP协议本身关系不大。AMQP协议标榜的不同实现之间的互操作,说的是A实现的client和B实现的broker,目前看来这个也是没有做到的。
1. 指定使用那种协议。如我用Spring的
2,如果是纯Java开发,建议
openwire也就可以了。openwire是Java的序列化方式,其它语言无法支持。 amqp和stomp都多语言支持的,Java,Python都能混搭,消息相互通用。
ws是现在浏览器WebSocket链接的。其它的协议我也不晓得,自己Google吧
3, MQ就是一个消息服务中间件,使用AMQP协议的程序可以在多个中间件之间移植。如RabbitMQ。每个中间件效率各异,LZ还是自己测试自己发现吧