尝试试用了下rabbitmq ,比activemq 简单很多,客户端API很简洁。
先普及几个概念
AMQP
1.基本概念:
AMQP(消息队列协议,Advanced Message Queuing Protocol)是一种消息协议 ,等同于JMS,但是JMS只是java平台的方案,且只是API级别的一个协议,AMQP是一个跨语言的协议。AMQP允许来自不同供应商的消息生产者和消费者实现真正的互操作扩展,就如同SMTP、HTTP、FTP等协议采用的方式一样。
2.AMQP模型
交换器,队列,消息,绑定
2.1 交换器
交换器是消息送达的实体。他是具名的。
属性:
passive:交换器不在事先被声明,如果其不存在将抛出错误。
durable:该交换器将在broker重启后生效。
auto-delete:该交换器将在没有消息队列绑定时自动删除。一个从未绑定任何队列的交换器不会自动删除。
注意:AMQP 1.0规范将定义可移除的交换器。
2.2 队列
队列是接收消息的实体,具有名字和属性,但没有类型。客户端可以订阅队列以便使broker递送某消息队列的内容到该客户端。另,客户端也可自动到队列取他所感兴趣的消息。
消息确保以它被送往队列时的顺序分发。但在进行某些重新路由的操作如失效处理时,其顺序则不能保证。
属性:
alternate-exchange :当消息被订阅者拒绝或者由于队列被删除而孤立时则被送往此交换器,同时队列中的该消息被删除。