File tree Expand file tree Collapse file tree 4 files changed +25
-295
lines changed
Expand file tree Collapse file tree 4 files changed +25
-295
lines changed Original file line number Diff line number Diff line change @@ -15257,7 +15257,7 @@ struct clusterNodeFailReport {
1525715257
1525815258
1525915259
15260- 选举新主节点的方法和选举领头 Sentinel 的方法非常相似,两者都是基于 Raft 算法的领头选举(eader election)方法实现的
15260+ 选举新主节点的方法和选举领头 Sentinel 的方法非常相似,两者都是基于 Raft 算法的领头选举(leader election)方法实现的
1526115261
1526215262
1526315263
Original file line number Diff line number Diff line change @@ -739,9 +739,13 @@ Maven 的插件用来执行生命周期中的相关事件
739739
740740### 继承
741741
742- 作用:通过继承可以实现在子工程中沿用父工程中的配置
742+ Maven 中的继承与 Java 中的继承相似,可以实现在子工程中沿用父工程中的配置
743743
744- - Maven 中的继承与 Java 中的继承相似,在子工程中配置继承关系
744+ dependencyManagement 里只是声明依赖,并不实现引入,所以子工程需要显式声明需要用的依赖
745+
746+ - 如果子工程中未声明依赖,则不会从父项目继承下来
747+ - 在子工程中声明该依赖项,并且不指定具体版本,才会从父项目中继承该项,version 和 scope 都继承取自父工程 pom 文件
748+ - 如果子工程中指定了版本号,那么使用子工程中指定的 jar 版本
745749
746750制作方式:
747751
@@ -10268,13 +10272,14 @@ ConsumeRequest 是 ConsumeMessageOrderlyService 的内部类,是一个 Runnabl
1026810272
1026910273生产流程:
1027010274
10271- * 首先获取当前消息主题的发布信息,获取不到去 Namesrv 获取(默认有 TBW102 ),并将获取的到的路由数据转化为发布数据,** 创建 MQ 队列 ** ,客户端实例同样更新订阅数据,创建 MQ 队列,放入负载均衡服务 topicSubscribeInfoTable 中
10275+ * 首先获取当前消息主题的发布信息,获取不到去 Namesrv 获取(默认有 TBW102 ),并将获取的到的路由数据转化为发布数据,** 创建 MQ 队列在多个 Broker 组 ** (一组代表一主多从的 Broker 架构) ,客户端实例同样更新订阅数据,创建 MQ 队列,放入负载均衡服务 topicSubscribeInfoTable 中
1027210276* 然后从发布数据中选择一个 MQ 队列发送消息
1027310277* Broker 端通过 SendMessageProcessor 对发送的消息进行持久化处理,存储到 CommitLog 。将重试次数过多的消息加入** 死信队列** ,将延迟消息的主题和队列修改为调度主题和调度队列 ID
1027410278* Broker 启动 ScheduleMessageService 服务会为每个延迟级别创建一个延迟任务,让延迟消息得到有效的处理,将到达交付时间的消息修改为原始主题的原始 ID 存入 CommitLog ,消费者就可以进行消费了
1027510279
1027610280消费流程:
1027710281
10282+ * 消息消费队列 ConsumerQueue 存储消息在 CommitLog 的索引,消费者通过该队列来读取消息实体内容,一个 MQ 就对应一个 CQ
1027810283* 首先通过负载均衡服务,将分配到当前消费者实例的 MQ 创建 PullRequest ,并放入 PullMessageService 的本地阻塞队列内
1027910284* PullMessageService 循环从阻塞队列获取请求对象,发起拉消息请求,并创建 PullCallback 回调对象,将正常拉取的消息** 提交到消费任务线程池** ,并设置请求的下一次拉取位点,重新放入阻塞队列,形成闭环
1028010285* 消费任务服务对消费失败的消息进行回退,通过内部生产者实例发送回退消息,回退失败的消息会再次提交消费任务重新消费
You can’t perform that action at this time.
0 commit comments