Nacos服务注册原理-服务端
2024-11-12 14:54:13 7 举报
Nacos服务注册原理中,服务端是一个核心组件。首先,服务端在启动时,会生成一个包含所有服务信息的配置文件,这个配置文件描述了服务的名字、地址和端口等信息。然后,服务端会将这些信息发布到注册中心,这样其他服务就可以通过注册中心找到这些服务。当服务发生改变时,服务端也会将最新的配置文件发布到注册中心,以保持信息的一致性。最后,服务端还提供了服务发现的功能,其他服务可以通过该功能找到它们需要的服务。
作者其他创作
大纲/内容
ContextRefreshedEvent
processTasks()
handleClientOpreation()
否
Nacos客户端
发布事件
创建raftGroupService
NamingSubscriberServiceV2Impl.onEvent()
添加到本地注册表
NacosStateMachine
processor
注入请求处理器
当前节点是否为Leader
registerInstance()
单线程执行器
请求处理器处理注册请求
onInstanceRegister()
事件发生
NamingHttpClientProxy
PersistentClientOperationServiceImpl
CPProtocol protocol
onEvent()
向客户端的全部订阅者或者部分客户端推送数据
PushDelayTaskExecuteEngine
InstanceController
raftServer.createMultiRaftGroup(processors)
run()
注册永久实例
RequestHandlerRegistry
启动RaftServer
addPublisherIndexes
推送延迟任务到执行引擎
initCPProtocol()CP协议实现:JRaftProtocol
监听事件
grpcClietnProxy
GrpcRequestAcceptor
getCpProtocol()
onApply()
register()
InstanceOperatorClientImpl
node.apply()
applyOperation()
是
@Component
添加请求处理器addRequestProcessors
processor.onApply()
EphemeralClientOperationServiceImpl.registerInstance()
ClientRegisterServiceEvent
任务表
注册
process()
onApplicationEvent()
handle()
Springboot 启动
ApplicationListener
延迟任务执行引擎
Bean加载完成后发布事件:ContextRefreshedEvent
protocol.write(writeRequest)
request()
InstanceRequestHandler
注册请求处理器
ClientServiceIndexesManager
raftServer.commit()
JRaftProtocol执行写请求
构造函数调用
初始化RaftServer
处理请求
转发给Leader
注册永久实例方法
注册状态机
注册临时实例
提交写请求给Raft集群
发布事件,通知其他客户端
ServiceChangedEvent
invokeToLeader()
0 条评论
下一页