RocketMQ 学习笔记

RocketMQ 简介

1.RocketMQ 是一个队列模型的消息中间件,具有高性能,高可用,高实时等特性,它并不支持JMS(java消息服务)规范,但参考了JMS规范和kafak等的思想。

2.Producer 、Consumer,队列都可以分布式。

3.Producer可以向队列轮流发送消息,队列的集合称为Topic,Consumer可以做广播消费,也可以做集群消费。

4.能够保证严格的消息顺序

5.提供消费者水平订阅扩展能力

6.亿级的消息堆积能力

7.较少的依赖

RocketMQ术语介绍

1.Producer  消息生产者,即生产消息的系统,一般指业务系统。

2.Consumer 消息消费者,即消费消息的系统,一般指后端的异步处理系统。

3.ProducerGroup 生产者组,指一类发送消息的系统。

4.ConsumerGroup 消费组,指消费同一类消息的系统

5.Broker 消息中间件,主要完成消息的存储,转发,是消息系统的核心组件。

5.Topic 消息主题,消息队列的集合。

6.MessageQueue  消息队列,RocketMQ 的所有消息都是持久化的,可以把MessageQueue 理解为一个长度无限的数组,通过下标offset 访问消息

7.广播消费消息模型,指消费这消费某主题的所有队列的消息,消费组在该消息模型下不起作用,类似JMS的publish/subscribe.

8.集群消费消息模型,是指同一个消费组的消费者各自消费某一主题的消费队列的消息,比如有一个主题 topicA,该主题有4个队列(创建主题的时候可以指定该主题的队列的数量),有一个消费组testConsumerGroup,该消费组有四个消费者(四个机器或者四个进程),则四个消费者各自消费一个消息队列。

RocketMQ 提供功能

1.消息的顺序,即消费消息的顺序同发送消息消息的顺序一致。

2.消息重试,即消息消费失败后,RocketMQ 提供了一种机制,可以让消息在消费一次。

3.定时消息,即指消息到达broker后,并不是立即投递给消费者,而是在某个时间点或者一定的延时后在投递,RocketMQ支持一定的延时投递消息。

4.消息回溯,是指消息成功被消费者消费后,可能需要一个机制重新消费以前的消息,rocketmq支持回溯消费某个时间点的消息(支持到毫秒级别),可以向前也可以向后。

5.消息重复,RocketMQ 保证 At least once ,即消息至少被投递一次,并不支持 Exactly only once(支持这个需要生产者指发送一次,broker只投递一次,实现这个会损失性能),所以由于网络或者消费组启动或者停止,可能造成消息重复投递,需要消费者做到去重,即消费消息要做到幂等,但在大部分情况下,消息是不会重复投递的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 4,058评论 1 41
  • 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能...
    Sophie12138阅读 726评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • “他们说你经常自己出去,也不带我们。” 我很想听听她的想法,问“那你怎么看待这个问题的呢?” “也不是这样的啊,你...
    EvelynFish阅读 503评论 0 1