ActiveMQ——activemq的详细说明,queue、topic的区别(精选)

 

 

JMS中定义了两种消息模型:点对点(point to point, queue)发布/订阅(publish/subscribe,topic)。主要区别就是是否能重复消费服务器

点对点:Queue,不可重复消费

消息生产者生产消息发送到queue中,而后消息消费者从queue中取出而且消费消息。
消息被消费之后,queue中再也不有存储,因此消息消费者不可能消费到已经被消费的消息。
Queue支持存在多个消费者,可是对一个消息而言,只会有一个消费者能够消费、其它的则不能消费此消息了。
当消费者不存在时,消息会一直保存,直到有消费消费

发布/订阅:Topic,能够重复消费

消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。
和点对点方式不一样,发布到topic的消息会被全部订阅者消费
当生产者发布消息,无论是否有消费者。都不会保存消息

 

 

Jms规范里的两种message传输方式Topic和Queue,二者的对好比下表():异步

 

 

 

  Topic Queue
概要 Publish  Subscribe messaging 发布订阅消息 Point-to-Point  点对点
有无状态 topic数据默认不落地,是无状态的。

Queue数据默认会在mq服务器上以文件形式保存,好比Active MQ通常保存在$AMQ_HOME\data\kr-store\data下面。也能够配置成DB存储。spa

完整性保障 并不保证publisher发布的每条数据,Subscriber都能接受到。 Queue保证每条数据都能被receiver接收。
消息是否会丢失 通常来讲publisher发布消息到某一个topic时,只有正在监听该topic地址的sub可以接收到消息;若是没有sub在监听,该topic就丢失了。 Sender发送消息到目标Queue,receiver能够异步接收这个Queue上的消息。Queue上的消息若是暂时没有receiver来取,也不会丢失。
消息发布接收策略 一对多的消息发布接收策略,监听同一个topic地址的多个sub都能收到publisher发送的消息。Sub接收完通知mq服务器 一对一的消息发布接收策略,一个sender发送的消息,只能有一个receiver接收。receiver接收完后,通知mq服务器已接收,mq服务器对queue里的消息采起删除或其余操做。
相关文章
相关标签/搜索