From c88edb5eed87fcb16870cdd3876d1a8acc06af83 Mon Sep 17 00:00:00 2001 From: liwenguang <1254755805@qq.com> Date: Sat, 27 Apr 2019 18:01:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=8ARocketMQ=E7=9A=84?= =?UTF-8?q?=E5=87=A0=E4=B8=AA=E9=97=AE=E9=A2=98=E4=B8=8E=E5=8E=9F=E7=90=86?= =?UTF-8?q?=E3=80=8B=E7=9A=84=E5=87=A0=E5=A4=84=E7=AC=94=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/rocketmq/RocketMQ的几个问题与原理.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/rocketmq/RocketMQ的几个问题与原理.md b/docs/rocketmq/RocketMQ的几个问题与原理.md index fd87bb20..c80b144a 100644 --- a/docs/rocketmq/RocketMQ的几个问题与原理.md +++ b/docs/rocketmq/RocketMQ的几个问题与原理.md @@ -122,7 +122,7 @@ class Broker { 问题: 1. 没有实现真正执行消息存储落盘 2. 没有实现 NameServer 去作为注册中心,定位服务 -3. 使用 LinkedBlockingQueue 作为消息队列,注意,参数是无限大,在真正 RocketMQ 也是如此是无限大,理论上不会出现对进来的数据进行抛弃,但是会有内存泄漏问题(阿里巴巴开发手e册也因为这个问题,建议我们使用自制线程池) +3. 使用 LinkedBlockingQueue 作为消息队列,注意,参数是无限大,在真正 RocketMQ 也是如此是无限大,理论上不会出现对进来的数据进行抛弃,但是会有内存泄漏问题(阿里巴巴开发手册也因为这个问题,建议我们使用自制线程池) 4. 没有使用多个队列(即多个 LinkedBlockingQueue),RocketMQ 的顺序消息是通过生产者和消费者同时使用同一个 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 分布式消息的实现