#goCode#rpc简单实现

2020-02-18  本文已影响0人  aHeartToGo

什么是rpc

RPC:Remote Procedure Call  远程过程调用,解决分布式系统中服务调用问题,能够让系统像调用本地方法那样调用远程方法。

目前市场很多rpc框架,比如:grpc,Dubbo,Thrift等

核心原理

server:暴露服务,服务提供方

client:消费服务,调用远程服务

registr:服务注册与发现(不一定会有)

客户端(client functions):服务调用方。

客户端存根(client stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端。

服务端存根(server stub):接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理。

服务端(server functions):服务的真正提供者。

network:底层传输,可以是 TCP 或 HTTP。传输过程涉及到序列化反序列化

实践

ahtg-rpc-client:客户端模块

ahtg-rpc-codec:序列化模块(alibaba.fastjson)

ahtg-rpc-coommon:公共方法

ahtg-rpc-proto:协议模块

ahtg-rpc-server:服务模块

ahtg-rpc-transport:网络通信模块

demo 代码:https://gitee.com/XiaLi17/ahtg-rpc

上一篇下一篇

猜你喜欢

热点阅读