RocketMQ更新中

专业术语说明:


1.Producer
消息生产者,负责产生消息,一般由业务系统负责产生消息。

2.Consumer
消息消费者,负责消费消息,一般是后台系统负责异步消费。

3.Push Consumer
Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 对象立刻回调 Listener 接口方法。

4.Pull Consumer
Consumer 的一种,应用通常主动调用 Consumer 的拉消息方法从 Broker 拉消息,主动权由应用控制。

5.Producer Group
一类 Producer 的集合名称,这类 Producer 通常发送一类消息,且放送逻辑一致。

6.Consumer Group
一类 Consumer 的集合名称,这类 Consumer 通常消费一类消息,且消费逻辑一致。

7.Broker
消息中转角色,负责存储消息,转发消息,一般也称为 Server。在 JMS 规范中称为 Provider。

8.广播消费
一条消息被多个 Consumer 消费,即使这些 Consumer属于同一个 Consumer Group,消息也会被 ConsumerGroup 中的每个 Consumer 都消费一次,广播消费中的 Consumer Group 概念可以认为在消息划分方面无意义。


9.集群消费
一个 Consumer Group 中的 Consumer 实例平均分摊消费消息。例如某个 Topic 有 9 条消息,其中一个Consumer Group 有 3 个实例(可能是 3 个进程,或者 3 台机器),那举每个实例只消费其中的 3 条消息


10.顺序消息
消费消息的顺序要同发送消息的顺序一致,在 RocketMQ 中,主要指的是局部顺序,即一类消息为满足顺序性,必须 Producer 单线程顺序发送,且发送到同一个队列,这样 Consumer 就可以按照 Producer 发送的顺序去消费消息。

11.普通顺序消息
顺序消息的一种,正常情况下可以保证完全的顺序消息,但是一旦发生通信异常,Broker 重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。如果业务能容忍在集群异常情况(如某个 Broker 宕机或者重启)下,消息短暂的乱序,使用普通顺序方式比较合适。
 

12.严格顺序消息
顺序消息的一种,无论正常异常情况都能保证顺序,但是牺牲了分布式 Failover 特性,即 Broker 集群中只要有一台机器不可用,则整个集群都不可用,服务可用性大大降低。如果服务器部署为同步双写模式,此缺陷可通过备机自动切换为主避免,不过仍然会存在几分钟的服务不可用。(依赖同步双写,主备自动切换,自动切换功能目前还未实现)目前已知的应用只有数据库 binlog同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推荐使用普通的顺序消息。

13.Message Queue
在 RocketMQ 中,所有消息队列都是持久化,长度无限的数据结构,所谓长度无限是指队列中的每个存储单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100年内不会溢出,所以认为是长度无限,另外队列中只保存最近几天的数据,之前的数据会按照过期时间来删除。也可以认为Message Queue 是一个长度无限的数组,offset 就是下标。

 

消息存盘图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

已标记关键词 清除标记
相关推荐
<p style="font-size:14px;color:#333333;"> <span style="color:#000000;">RocketMQ </span><span style="color:#000000;">是阿里巴巴在</span><span style="color:#000000;">2012</span><span style="color:#000000;">年开源的分布式消息间件,目前已经捐赠给</span><span style="color:#000000;"> Apache </span><span style="color:#000000;">软件基金会,并于</span><span style="color:#000000;">2017</span><span style="color:#000000;">年</span><span style="color:#000000;">9</span><span style="color:#000000;">月</span><span style="color:#000000;">25</span><span style="color:#000000;">日成为</span><span style="color:#000000;">Apache </span><span style="color:#000000;">的顶级项目。作为经历过多次阿里巴巴双十一这种</span><span style="color:#000000;">“</span><span style="color:#000000;">超级工程</span><span style="color:#000000;">”</span><span style="color:#000000;">的洗礼并有稳定出色表现的国产间件,以其高性能、低延时和高可靠等特性近年来已经也被越来越多的国内企业使用。其主要功能有</span><span style="color:#000000;">1.</span><span style="color:#000000;">灵活可扩展性、</span><span style="color:#000000;">2.</span><span style="color:#000000;">海量消息堆积能力、</span><span style="color:#000000;">3.</span><span style="color:#000000;">支持顺序消息、</span><span style="color:#000000;">4.</span><span style="color:#000000;">多种消息过滤方式、</span><span style="color:#000000;">5.</span><span style="color:#000000;">支持事务消息、</span><span style="color:#000000;">6.</span><span style="color:#000000;">回溯消费等常用功能。</span> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">RocketMQ <span>核心的四大组件:</span>Name Server<span>、</span>Broker<span>、</span>Producer<span>、</span>Consumer <span>,每个组件都可以部署成集群进行水平扩展。</span></span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="color:#000000;">2、适应人群</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">有一定的Java基础,并且有分布式项目开发经验。</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="color:#000000;">3、课程价值</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">可以让初学者对分布式系统解耦有一定认识,并且能够通过快速使用RocketMQ实现分布式服务的异步通信,同时本课程还会通过项目案例实战让学员对RocketMQ的应用场景有所体会,最后再通过源码角度让学员对RocketMQ的原理有所理解,不仅做到“知其然”,亦“知其所以然”。</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="color:#000000;">4、课程收获</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">1. <span style="font-size:14px;">理解消息间件MQ的优势和应用场景</span></span> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">2. 掌握RocketMQ的核心功能,以及各种消息发送案例</span> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">3. 通过电商项目深刻理解RocketMQ在使用项目的落地应用</span> </p> <p style="font-size:14px;color:#333333;"> <span style="color:#000000;">4. 通过RocketMQ高级功能和源码学习,对RocketMQ的技术细节和原理有更加透彻的理解</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span>5、课程亮点</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span>l<span style="font-size:9px;">  </span></span><span style="font-size:17px;">核心功能</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>MQ介绍</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>环境准备</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>RocketMQ高可用集群搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>各种消息发送样例</span> </p> <p style="font-size:14px;color:#333333;"> <span>l<span style="font-size:9px;">  </span></span><span>综合练习</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>项目背景介绍</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>功能分析</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>项目环境搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>下单功能,保证各服务的数据一致性</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>确认订单功能,通过消息进行数据分发</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>整体联调</span> </p> <p style="font-size:14px;color:#333333;"> <span>l<span style="font-size:9px;">  </span></span><span>高级功能</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息的存储和发送</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息存储结构</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>刷盘机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息的同步复制和异步复制</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>负载均衡</span> </p> <p style="font-size:14px;color:#333333;"> <span>l<span style="font-size:9px;">  </span></span><span>源码分析</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>路由心NameServer</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息生产者Producer</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息存储</span> </p> <p style="font-size:14px;color:#333333;"> <span>n<span style="font-size:9px;">  </span></span><span>消息消费Consumer</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span>6、主讲内容</span></strong> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="font-size:19px;">章节一:核心功能</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span>1.<span style="font-size:9px;">     </span>快速入门</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>MQ介绍</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>作用</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>注意事项</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>各MQ产品比较</span> </p> <p style="font-size:14px;color:#333333;"> <span>2.<span style="font-size:9px;">     </span>RocketMQ环境搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>环境准备</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>安装RocketMQ</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>启动RocketMQ</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>测试RocketMQ</span> </p> <p style="font-size:14px;color:#333333;"> <span>e)<span style="font-size:9px;">     </span>关闭RocketMQ</span> </p> <p style="font-size:14px;color:#333333;"> <span>3.<span style="font-size:9px;">     </span>RocketMQ高可用集群搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>集群各角色介绍</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>集群搭建方式</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>双主双从集群搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>集群监控平台</span> </p> <p style="font-size:14px;color:#333333;"> <span>4.<span style="font-size:9px;">     </span>各种消息发送样例</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>同步消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>异步消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>单向消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>顺序消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>e)<span style="font-size:9px;">     </span>批量消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>f)<span style="font-size:9px;">      </span>过滤消息</span> </p> <p style="font-size:14px;color:#333333;"> <span>g)<span style="font-size:9px;">     </span>事务消息</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="font-size:19px;">章节二:项目实战</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span>1.<span style="font-size:9px;">    </span>项目背景介绍</span> </p> <p style="font-size:14px;color:#333333;"> <span>(1)<span style="font-size:9px;">    </span>电商高可用MQ实战</span> </p> <p style="font-size:14px;color:#333333;"> <span>2.<span style="font-size:9px;">    </span>功能分析</span> </p> <p style="font-size:14px;color:#333333;"> <span>(1)<span style="font-size:9px;">    </span>下单功能</span> </p> <p style="font-size:14px;color:#333333;"> <span>(2)<span style="font-size:9px;">    </span>支付功能</span> </p> <p style="font-size:14px;color:#333333;"> <span>3.<span style="font-size:9px;">    </span>项目环境搭建</span> </p> <p style="font-size:14px;color:#333333;"> <span>(1)<span style="font-size:9px;">    </span>SpringBoot</span> </p> <p style="font-size:14px;color:#333333;"> <span>(2)<span style="font-size:9px;">    </span>Dubbo</span> </p> <p style="font-size:14px;color:#333333;"> <span>(3)<span style="font-size:9px;">    </span>Zookeeper</span> </p> <p style="font-size:14px;color:#333333;"> <span>(4)<span style="font-size:9px;">    </span>RocketMQ</span> </p> <p style="font-size:14px;color:#333333;"> <span>(5)<span style="font-size:9px;">    </span>Mysql</span> </p> <p style="font-size:14px;color:#333333;"> <span>4.下单功能,保证各服务的数据一致性</span> </p> <p style="font-size:14px;color:#333333;"> <span>5.确认订单功能,通过消息进行数据分发</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="font-size:19px;">章节三:高级功能</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span>1. 消息的存储和发送</span> </p> <p style="font-size:14px;color:#333333;"> <span>2. 消息存储结构</span> </p> <p style="font-size:14px;color:#333333;"> <span>3. 刷盘机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>(1)<span style="font-size:9px;">    </span>同步刷盘</span> </p> <p style="font-size:14px;color:#333333;"> <span>(2)<span style="font-size:9px;">    </span>异步刷盘</span> </p> <p style="font-size:14px;color:#333333;"> <span>4. 消息的同步复制和异步复制</span> </p> <p style="font-size:14px;color:#333333;"> <span>5. 负载均衡</span> </p> <p style="font-size:14px;color:#333333;"> <span>(1)<span style="font-size:9px;">    </span>Producer负载均衡</span> </p> <p style="font-size:14px;color:#333333;"> <span>(2)<span style="font-size:9px;">    </span>Consumer负载均衡</span> </p> <p style="font-size:14px;color:#333333;"> <strong><span style="font-size:19px;">章节四:源码分析</span></strong> </p> <p style="font-size:14px;color:#333333;"> <span>1.<span style="font-size:9px;">     </span>路由心NameServer</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>NameServer架构设计</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>NameServer启动流程</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>NameServer路由注册和故障剔除</span> </p> <p style="font-size:14px;color:#333333;"> <span>2.<span style="font-size:9px;">     </span>消息生产者Producer</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>生产者启动流程</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>生产者发送消息流程</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>批量发送</span> </p> <p style="font-size:14px;color:#333333;"> <span>3.<span style="font-size:9px;">     </span>消息存储</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>消息存储流程</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>存储文件与内存映射</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>存储文件</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>实时更新消息消费队列和存储文件</span> </p> <p style="font-size:14px;color:#333333;"> <span>e)<span style="font-size:9px;">     </span>消息队列与索引文件恢复</span> </p> <p style="font-size:14px;color:#333333;"> <span>f)<span style="font-size:9px;">      </span>刷盘机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>4.<span style="font-size:9px;">     </span></span><span>过期文件删除机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>a)<span style="font-size:9px;">     </span>消息消费Consumer</span> </p> <p style="font-size:14px;color:#333333;"> <span>b)<span style="font-size:9px;">     </span>消费者启动流程</span> </p> <p style="font-size:14px;color:#333333;"> <span>c)<span style="font-size:9px;">      </span>消息拉取</span> </p> <p style="font-size:14px;color:#333333;"> <span>d)<span style="font-size:9px;">     </span>消息队列负载均衡和重新分布机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>e)<span style="font-size:9px;">     </span>消息消费过程</span> </p> <p style="font-size:14px;color:#333333;"> <span>f)<span style="font-size:9px;">      </span>定时消息机制</span> </p> <p style="font-size:14px;color:#333333;"> <span>g)<span style="font-size:9px;">     </span>顺序消息</span> </p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页