一些收藏

RocketMQ-消息发送流程及定时拉取模式

2022-04-30  本文已影响0人  洛神灬殇
image

消息发送流程主要包括如下三个方面:

1、Topic路由寻址

2、选择消息队列

3、消息发送、重试、Broker规避
RocketMQ 使用拉模式来实现 Topic 路由有什么缺点呢?

1、Topic 路由中心(Nameserver) topic 是基于最终一致性,极端情况下会出现数据不一致。

2、客户端无法实时感知路由信息的变化,例如某台Broker 自身进程未关闭,但停止向Nameserver
    发送心跳包,但生产者无法立即感知该Broker服务器的异常,会对消息发送造成一定的可用性?

    RocketMQ 并不打算解决上述问题,因为基于上述的设计,RocketMQ

    NameServer 的实现非常简单、高效,至于消息发送的高可用性,则由消息发送客户端自己来保证。

RocketMQ的设计者遵循的一个设计理念:崇尚“缺陷美”,简单、高性能。

IndexFile 文件格式

image

** IndexFile文件基于物理磁盘文件实现Hash索引。其文件由40字节的文件头、500W个hash槽,每个hash槽为4个字节,最后由2000万个Index条目,每个条目由20个字节构成,分别为4字节的索引key的hashcode、8字节消息物理偏移量、4字节时间戳、4字节的前一个Index条目(hash冲突的链表结构)。**

上一篇 下一篇

猜你喜欢

热点阅读