RPC服务暴露的过程

219 阅读2分钟

什么是服务暴露?

服务暴露又称服务导出,服务导出的叫法相对于服务暴露更加形象一些。服务暴露发生在Provider 端,根据服务是否暴露到远程可以分为两种,一种是服务只暴露到本地,另一种则是暴露在远程

服务暴露的流程

在一台机器上,一个应用服务可以认为是机器上的一个进程,当该进程启动后,如果不进行服务暴露,那么该进程不会绑定一个端口用于监听和接收Consumer 端的连接和请求,反之,该进程会监听本地的端口。服务暴露的其中一种方式是将应用服务暴露到远程,其中的远程其实是指有一个统一的管理中心来管理所有应用服务的地址和服务信息,这个统一的管理中心就是注册中心(Registy)。应用服务暴露到远程的第一步也是在本地绑定端口,过程与暴露到本地一模一样,但是当本地端口绑定完成后,还需要将Provider端的应用服务信息注册到注册中心。服务暴露过程以下图所示。 Provider 端的应用服务信息包括 Provider 端的地址端口、应用服务需要暴露的接口定义信息等。Provider 端除了会在应用服务启动的时候将服务信息注册到注册中心,还会与注册中心保持心跳保活。如果 Provider 端某个节点异常下线,注册中心在一段时间的保活检查后,就会将该节点的信息从注册中心中移除,防止Consumer端把请求发送到该下线的节点上因为业务迭代迅速,服务端的服务变动及上下线很频繁,通过注册中心管理服务的地址信息可以让客户端动态地感知服务变动,并且客户端不需要再显式地配置服务端地址,只要配置注册中心地址即可,而注册中心集群一般不会变动。

RPC发起暴露流程

image.png