问题一:命名服务(NameServer)在消息发布和消费中扮演了什么样的角色?
命名服务(NameServer)在消息发布和消费中扮演了什么样的角色?
参考回答:
命名服务在消息发布和消费中负责维护topic和broker之间的对应关系,并且和所有的broker保持心跳连接。当producer和consumer需要发布或者消费消息时,会向NameServer发出请求来获取需要连接的broker的信息。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615034
问题二:命名服务(NameServer)在消息发布和消费中扮演了什么样的角色?
命名服务(NameServer)在消息发布和消费中扮演了什么样的角色?
参考回答:
部署多个NameServer并实现互相独立,是为了达到热备份的目的。其他角色会同时向多个NameServer机器上报状态信息,这样即使某个NameServer出现问题,其他的NameServer仍然可以提供服务,增强了系统的稳定性和可用性。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615035
问题三:为什么可以部署多个NameServer,并且每个NameServer之间互相独立?
为什么可以部署多个NameServer,并且每个NameServer之间互相独立?
参考回答:
虽然ZooKeeper在分布式系统中被广泛使用,且具有自动选举Master的功能,但在MetaQ的架构设计上并不需要进行Master选举。因此,使用一个轻量级的元数据服务器,即NameServer,就可以满足需求,而无需引入ZooKeeper的复杂性和额外的资源消耗。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615036
问题四:消息中间件MetaQ中的Broker是指什么?
消息中间件MetaQ中的Broker是指什么?
参考回答:
MetaQ的服务器,负责消息的中转、存储和转发,Broker可以分为Master和Slave,一个Master可以对接多个Slave,但是一个Slave只能对接一个Master,Master与Slave之间可以通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,不为0的表示Slave。Master可以部署多个,每个Broker和NameServer集群中的所有节点建立长连接,定期的注册Topic信息到所有的NameServer上。消息会发送到Master上,一旦Master上面记录成功,就直接返回成功,不用等待slave上面是否记录成功,slave会定时的去获取消息记录,所以slave和master上面会有一些时间差异;slave可以作为consumer的服务提供者,意思就是如果写入必须通过master,消费的时候则可以直接从slave上面获取。Master和slave都需要注册到nameserver上面,一旦master无法使用,客户端可以使用与之对应的slave。每个Broker与Name Server集群中的所有节点建立长连接,定时(每隔30s)注册Topic信息到所有Name Server。Name Server定时(每隔10s)扫描所有存活broker的连接,如果Name Server超过2分钟没有收到心跳,则Name Server断开与Broker的连接。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615040
问题五:Broker中的Master和Slave是什么关系?
Broker中的Master和Slave是什么关系?
参考回答:
在Broker中,可以分为Master和Slave两种角色。一个Master可以对接多个Slave,但是一个Slave只能对接一个Master。它们之间通过指定相同的BrokerName和不同的BrokerId来定义,其中BrokerId为0表示Master,不为0的表示Slave。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615039