这是我参与「第三届青训营 -后端场」笔记创作活动的第3篇笔记。
RPC
名称:远程过程调用,具体就是说我们能够在像调用本地方法一样去调用别人提供的服务,这里使用Dubbo官网上的一张图来描述一下具体的架构
服务提供者在运行的时候将自己注册到注册中心中去,Container容器在Dubbo使用的是Spring容器,然后客户端通过网络传输的方式将自己希望调用的方法的方法名,参数,告知注册中心,注册中心返回对应的服务地址,之后客户端通过代理对象将方法的参数、名称通过网络传输给服务端,服务端收到之后在本地执行方法,执行完成后将结果返回给客户端。这样一来客户端本地并没有实现对应的方法代码但是却拿到了正确的结果。(ps:在网络上传输的对象需要进行序列化,且服务端和客户端需要遵守IDL文件中的内容)
监控中心
监控客户端和服务端的行为并进行一个通知,如:服务注册、服务器下线、告知客户端
RPC的好处
- 单一职责,有利于分工协作和运维开发
- 可扩展性强,资源使用率更优
- 故障隔离,服务的整体可靠性更高
- 对于使用不同编程语言的技术人员也能够进行很好的协同开发,提高开发的效率
关于协议方法,使用的dubbo协议,注册中心官方推荐使用Zookeeper