高并发中间件3-ActiveMQ

Posted Java架构师进阶手册

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发中间件3-ActiveMQ相关的知识,希望对你有一定的参考价值。


ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件


高并发中间件3-ActiveMQ


高并发中间件3-ActiveMQ

高并发中间件3-ActiveMQ

JMS支持两种消息模型:Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub),即点对点和公布订阅模型。


点对点模型

  • 只有一个消费者

     每条消息只有一个消费者,如果这条消息被消费,那么其它消费者不能接受到此消息。

  •   时间无关性

       消息的消费和时间无关,只要消息被发送了,在消息过期之前,如果没有其他消费者消费了这个消息,那么客户端可以在任何时候来消费这条消息。

  • 消费者必须确认

       消费者收到消息之后,必须向Message Provider确认,否则会被认为消息没有被消费,仍然可以被其他消费者消费。可以设置自动确认。这个特点其实也是保证一条消息只能由一个消费者来消费。

  • 非持久化的消息只发一次

    非持久化的消息,可能会丢失,因为消息会过期,另外Message Provider可能宕机。

  • 持久化的消息严格发一次

    消息可以被持久化,比如持久化在文件系统或者数据库中,这样可以避免Message Provider的异常或者其它异常导致消息丢失。


发布者/订阅者模型

  • 每条消息可以有多个订阅者

  • 订阅者只能消费它们订阅topic之后的消息

  • 非持久化订阅,订阅者必须保持为活动状态才能使用这些消息,如果一个订阅者A断开了10分钟,那么A就会收不到这10分钟内的消息。

  • 持久化订阅,Message Provider会保存这些消息,即使订阅者因为网络原因断开了,再重新连接以后,能让消费这些消息。

  • 是否使用持久化订阅,需要根据业务场景判断。


高并发中间件3-ActiveMQ


高并发中间件3-ActiveMQ


高并发中间件3-ActiveMQ




以上是关于高并发中间件3-ActiveMQ的主要内容,如果未能解决你的问题,请参考以下文章

用Netty开发中间件:高并发性能优化

高并发中间件2-消息中间件的设计

TCMALLOC是什么 高并发内存中间件

高并发中间件5-Activemq高可用集群方案

高并发中间件4-ActiveMQ支持的协议

高并发分布式消息中间件技术ActiveMQ事务