mirror of
https://github.com/apache/rocketmq.git
synced 2026-09-24 16:04:00 +08:00
fix some typo in docs/cn/design.md (#1503)
This commit is contained in:
+3
-3
@@ -32,7 +32,7 @@
|
||||
(2) 异步刷盘:能够充分利用OS的PageCache的优势,只要消息写入PageCache即可将成功的ACK返回给Producer端。消息刷盘采用后台异步线程提交的方式进行,降低了读写延迟,提高了MQ的性能和吞吐量。
|
||||
|
||||
### 2 通信机制
|
||||
RocketMQ消息队列集群主要包括NameServe、Broker(Master/Slave)、Producer、Consumer4个角色,基本通讯流程如下:
|
||||
RocketMQ消息队列集群主要包括NameServer、Broker(Master/Slave)、Producer、Consumer4个角色,基本通讯流程如下:
|
||||
|
||||
(1) Broker启动后需要完成一次将自己注册至NameServer的操作;随后每隔30s时间定时向NameServer上报Topic路由信息。
|
||||
|
||||
@@ -57,7 +57,7 @@ Header字段 | 类型 | Request说明 | Response说明
|
||||
code |int | 请求操作码,应答方根据不同的请求码进行不同的业务处理 | 应答响应码。0表示成功,非0则表示各种错误
|
||||
language | LanguageCode | 请求方实现的语言 | 应答方实现的语言
|
||||
version | int | 请求方程序的版本 | 应答方程序的版本
|
||||
opaque | int |相当于reqeustId,在同一个连接上的不同请求标识码,与响应消息中的相对应 | 应答不做修改直接返回
|
||||
opaque | int |相当于requestId,在同一个连接上的不同请求标识码,与响应消息中的相对应 | 应答不做修改直接返回
|
||||
flag | int | 区分是普通RPC还是onewayRPC得标志 | 区分是普通RPC还是onewayRPC得标志
|
||||
remark | String | 传输自定义文本信息 | 传输自定义文本信息
|
||||
extFields | HashMap<String, String> | 请求自定义扩展信息 | 响应自定义扩展信息
|
||||
@@ -95,7 +95,7 @@ M1 | NettyServerCodecThread_%d | Worker线程池
|
||||
M2 | RemotingExecutorThread_%d | 业务processor处理线程池
|
||||
|
||||
### 3 消息过滤
|
||||
RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时再做消息过滤的。RocketMQ这么做是还是在于其Producer端写入消息和Consomer端订阅消息采用分离存储的机制来实现的,Consumer端订阅消息是需要通过ConsumeQueue这个消息消费的逻辑队列拿到一个索引,然后再从CommitLog里面读取真正的消息实体内容,所以说到底也是还绕不开其存储结构。其ConsumeQueue的存储结构如下,可以看到其中有8个字节存储的Message Tag的哈希值,基于Tag的消息过滤正式基于这个字段值的。
|
||||
RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时再做消息过滤的。RocketMQ这么做是在于其Producer端写入消息和Consumer端订阅消息采用分离存储的机制来实现的,Consumer端订阅消息是需要通过ConsumeQueue这个消息消费的逻辑队列拿到一个索引,然后再从CommitLog里面读取真正的消息实体内容,所以说到底也是还绕不开其存储结构。其ConsumeQueue的存储结构如下,可以看到其中有8个字节存储的Message Tag的哈希值,基于Tag的消息过滤正式基于这个字段值的。
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user