本文是基于RocketMQ 4.9版本讲解
为了帮助大家更好地理解这些消息底层的实现原理,这里我就通过三个问题来讲一讲RocketMQ最最基本的原理
如果有什么不解的,可以看看我之前写的RocketMQ消息短暂而又精彩的一生这篇文章
在RocketMQ中有两个重要的角色
当RocketMQ服务端,也就是Broker在启动的时候,会往NameServer注册自己的信息
这些信息其中就包括
当生产者和消费者启动的时候,就会从NameServer拉取这些信息,这样生产者和消费者就可以通过NameServer中获取到Broker的ip和端口,跟Broker通信了
而Topic我们也都知道,是消息队列中一个很重要的概念,代表了一类消息的集合
在RocketMQ中,每个Topic默认都会有4个队列,并且每个队列都有一个id,默认从0开始,依次递增
当生产者发送消息的时候,就会从消息所在Topic的队列中,根据一定的算法选择一个,然后携带这个队列的id(queueId),再发送给Broker