1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

修正《RocketMQ的几个问题与原理》的几处笔误

This commit is contained in:
liwenguang 2019-04-27 18:01:15 +08:00
parent b363141615
commit c88edb5eed

View File

@ -122,7 +122,7 @@ class Broker {
问题:
1. 没有实现真正执行消息存储落盘
2. 没有实现 NameServer 去作为注册中心,定位服务
3. 使用 LinkedBlockingQueue 作为消息队列,注意,参数是无限大,在真正 RocketMQ 也是如此是无限大,理论上不会出现对进来的数据进行抛弃,但是会有内存泄漏问题(阿里巴巴开发手e册也因为这个问题,建议我们使用自制线程池)
3. 使用 LinkedBlockingQueue 作为消息队列,注意,参数是无限大,在真正 RocketMQ 也是如此是无限大,理论上不会出现对进来的数据进行抛弃,但是会有内存泄漏问题(阿里巴巴开发手册也因为这个问题,建议我们使用自制线程池)
4. 没有使用多个队列(即多个 LinkedBlockingQueueRocketMQ 的顺序消息是通过生产者和消费者同时使用同一个 MessageQueue 来实现,但是如果我们只有一个 MessageQueue那我们天然就支持顺序消息
5. 没有使用 MappedByteBuffer 来实现文件映射从而使消息数据落盘非常的快(实际 RocketMQ 使用的是 FileChannel+DirectBuffer
@ -154,7 +154,7 @@ class Broker {
### 2.1.5 顺序消息的实现
与定时消息同原理,生产者生产消息时指定特定的 MessageQueue ,消费者消费消息时,消费特定的 MessageQueue其实单机版的消息中心在一个 MessageQueue 就天然支持了顺序消息(真棒!)
与定时消息同原理,生产者生产消息时指定特定的 MessageQueue ,消费者消费消息时,消费特定的 MessageQueue其实单机版的消息中心在一个 MessageQueue 就天然支持了顺序消息
### 2.1.6 分布式消息的实现