在上一篇的文章JRPC — RPC入门简介中介绍了什么是RPC,可以了解到RPC的基本原理。 这篇文章,会重点介绍JRPC。
文末有源码地址。
系统架构图
从图上可以看出,JRPC系统大致分成了7层:
- Service:服务接口层,服务提供方暴露给调用方的接口及实现。服务调用方只能调用暴露出的接口。
- Proxy、Provider:代理层,服务接口的透明代理,这里会生成服务端的skeleton和客户端是stub。
- Register:服务注册层,服务端将地址信息注册到注册中心,客户端从注册中心动态获取、更新服务器地址信息。
- Cluster:集群层,提供了负载均衡,实现了从集群中按照不同的策略选择其中一个服务器。
- Protocol:协议层,封装了发送包、响应包的通信协议格式。
- Transport:传输层,目前主要以Netty通信库,实现编码、解码、通信。
- Serialize:序列化层,实现了网络包的序列化和反序列化。提供了多种序列化方式。
调用原理图
我绘制了一张JRPC的原理图,如下: