Skip to content

Commit 45d4cf9

Browse files
committed
Update Java Note
1 parent 32a34ec commit 45d4cf9

File tree

4 files changed

+25
-295
lines changed

4 files changed

+25
-295
lines changed

DB.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15257,7 +15257,7 @@ struct clusterNodeFailReport {
1525715257

1525815258

1525915259

15260-
选举新主节点的方法和选举领头 Sentinel 的方法非常相似,两者都是基于 Raft 算法的领头选举(eader election)方法实现的
15260+
选举新主节点的方法和选举领头 Sentinel 的方法非常相似,两者都是基于 Raft 算法的领头选举(leader election)方法实现的
1526115261

1526215262

1526315263

Frame.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff 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
* 消费任务服务对消费失败的消息进行回退,通过内部生产者实例发送回退消息,回退失败的消息会再次提交消费任务重新消费

0 commit comments

Comments
 (0)