目录
1、NameServer是如何处理Broker的注册请求的?
2、Broker是如何发送定时心跳的,以及如何进行故障感知?
5、当发送消息时,是如何从NameServer拉取Topic元数据的?
6、对于一条消息,Producer是如何选择MessageQueue发送的
7、我们的系统与RocketMQ Broker之间是如何进行网络通信?
8、当Broker获取到一条消息之后,他是如何存储这条消息的?
9、一条消息写入CommitLog文件后,如何实时更新索引文件?
10、RocketMQ是如何实现同步刷盘以及异步刷盘两种策略的?
11、当Broker上的数据存储超过一定时间之后,磁盘数据是如何清理的?
1、NameServer是如何处理Broker的注册请求的?
到NamesrvController这个类的初始化的方法里去,也就是NamesrvController.initialize()这个方法
![](https://i-blog.csdnimg.cn/blog_migrate/c9e8ad3adb759a7ec4e37a0e6ef44399.png)
到NettyServer是用于接收网络请求 的,那么接收到的网络请求给谁处理呢?
其实就是给DefaultRequestProcessor这个请求处理组件来进行处理的。
![](https://i-blog.csdnimg.cn/blog_migrate/5fc41325084aa359fef6acf673be010b.png)