服务注册
2017-03-15 16:43:24 0 举报
服务注册是一种在分布式系统中用于定位和访问服务的机制。它允许服务提供者在其可用时向一个中心化的注册中心注册自己的服务,同时允许服务消费者在需要调用某个服务时从该注册中心查找并获取该服务的地址。这种机制使得服务消费者无需关心服务提供者的地址和端口信息,从而降低了系统的耦合度和复杂性。常见的服务注册中心包括Zookeeper、Eureka等。
作者其他创作
大纲/内容
NameServer
1.发送Half消息
每隔20s进行一次队列负载
writeQueueNums
新队列不包含的,停止消费
brokerAddrTable:每个brokerName的broker集合
perm
Producer
计算消费者分配到的新队列
3.执行本地事务列
brokerLiveTable:存活的Broker地址列表
Queue0
Queue3
消费
Broker
5. 如果未收到4的确认,回查3的执行状态
发消息
start
BrokerA
queueData
获取主题对应的所有队列和所有消费者
clustername1 -> Set<BrokerName>1
cluster
获取Broker路由
空则阻塞等待
brokerAddr1-> BrokerLiveInfo1
pullReqestQueue.take()
Queue1
brokerData
brokerId1 -> brokerAddress1
MyTopic
topic2 -> List<QueueData>2
topic1 -> List<QueueData>1
BrokerName2 -> BrokerData2
如果是Commit状态,消息可以被消费
2.Half消息成功
brokerAddr2 -> BrokerLiveInfo1
pullMessageService
每隔30s服务注册
Consumer
clusterAddrTable:存储集群的信息
brokerId2 -> brokerAddress2
Queue2
readQueueNums
brokerName
rebalanceService
pullReqestQueue是否为空
BrokerName1 -> BrokerData1
消费者分配到的老队列对比
1.获取路由信息
topicQueueTable:Topic对应的队列信息
4.Commit提交或者Rollback
clustername2 -> Set<BrokerName>2
注册Broker
3.发送消息
2.通过路由信息选择消息队列
老队列不存在,新队列存在的,创建pullRequest
BrokerB
0 条评论
下一页