RocketMQ NameServer

RocketMQ NameServer_第1张图片

  1. Broker是把自己的信息注册到哪个NameServer上去?

    每个Broker启动都得向所有的NameServer进行注册
    
  2. 系统如何从NameServer获取Broker信息?

    RocketMQ中的生产者和消费者就是这样,自己主动去NameServer拉取Broker信息的。
    
  3. 如果Broker挂了,NameServer是怎么感知到的?

    要解决这个问题,靠的是Broker跟NameServer之间的心跳机制,
    Broker会每隔30s给所有的NameServer发送心跳,告诉每个NameServer自己目前还活着。
    
  4. 如果Broker挂了,NameServer是怎么感知到的?

    首先,你可以考虑不发送消息到那台Broker,改成发到其他Broker上去。
    其次,假设你必须要发送消息给那台Broker,那么他挂了,
    他的Slave机器是一个备份,可以继续使用,
    你是不是可以考虑等一会儿去跟他的Slave进行通信?
    总之,这些都是思路,但是现在我们先知道,对于生产者而言,
    他是有一套容错机制的,即使一下子没感知到某个Broker挂了,他可以有别的方案去应对。
    而且过一会儿,系统又会重新从NameServer拉取最新的路由信息了,
    此时就会知道有一个Broker已经宕机了。
    OK!今天的技术分享就到这里了,这就是NameServer的核心工作原理。
    

你可能感兴趣的:(消息中间件)