消息队列学习(三)-RocketMQ

RocketMQ是一个队列模型的消息中间件,具有

  • 高性能
  • 高可靠
  • 高实时
  • 分布式

采用java语言开发的分布式的消息系统,阿里巴巴团队开发,2016年底贡献给apache。

模型

  • 队列模型

  • 主题模型或发布订阅模型

在主题模型种,消息的生产者被成为发布者(Publisher),消息的消费者被称为订阅者(Subscriber),存放消息的容易被称为主题(topic)。

发布者将消息发布到指定的主题种,订阅者需要提前订阅主题才能接受特定主题的消息。

RocketMQ中的消息模型

  • Producer Group 生产者组:代表某一类的生产者,比如多个秒杀系统作为生产者,多个合在一起就是一个生产者组,一个生产者组通常产生相同的消息。
  • Topic 主题:代表一类消息,比如订单消息,物流消息等。
  • Consumer Group 消费者组:代表某一类的消费者,比如多个短信系统作为消费者,多个合在一起就是个一个消费者组,它们一般消费相同的消息。

主题中存在多个队列,生产者每次生产消息之后是指定主题的某个队列发送消息的。

消费位移:消息被一个消费者组消费之后是不会删除的(因为其他消费者组也需要),为每个消费组维护一个消息位移。每次消费者组消费完会返回一个成功的响应,然后队列再把维护的消费位移加一,这样就不会出现消费被重复消费。

为什么一个主题中要维护多个队列?提高并发能力。

RocketMQ在一个topic中配置多个队列并且每个队列维护每个消费者组的消费位置,实现了主题模式/发布订阅模式。

RocketMQ架构图

未完。。。

发布了27 篇原创文章 · 获赞 2 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/jieyanqulaopo123/article/details/103177142