Origin源码阅读笔记——服务发现

本文介绍了开源Go语言分布式微服务框架Origin中的服务发现机制。从动态服务的安装、初始化和运行三个方面展开,详细讲解了Master和Client节点的交互过程,包括OnStart()函数、GetDiscoveryNodeList()的作用以及OnNodeConnected和OnNodeDisconnect的调用逻辑。通过阅读源码,揭示了服务发现的完整流程和工作原理。
摘要由CSDN通过智能技术生成

github地址:go 分布式微服务框架 Origin

初识Origin:https://blog.csdn.net/u013645668/article/details/115876646

1、动态发现服务的安装

打开cluster目录下的dynamicdiscovery.go, 会看到

DynamicDiscoveryMaster 和 DynamicDiscoveryClient

这两个结构都有组合service.Service,那既然是Service,那这两个Service是如何安装的呢,像其他服务那样在节点配置里添加服务名吗?

那样每个节点都需要添加,显然太笨了,看过cluster.go,就会知道有这样一个接口:

func (cls *Cluster) SetupServiceDiscovery(localNodeId int,setupServiceFun SetupServiceFun) {
    // ....

	//2.如果为动态服务发现安装本地发现服务
	cls.serviceDiscovery = getDynamicDiscovery()
	if localMaster == true {
		cls.appendService(DynamicDiscoveryMasterName,false)
	}
	cls.appendService(DynamicDiscoveryClientName,true)

}

那d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值