概念
RPC:Remote Procedure Call,即远程过程调用。是分布式系统常见的一种通信方法。
跨进程交互形式:RESTful、WebService、HTTP、基于DB做数据交换、基于MQ做数据交换,以及RPC。
依赖中间件做数据交互:Mysql、RabbitMQ、Kafka、Redis
直接交互:HTTP、WebService、RPC、RESTful
核心原理(整体架构)
Server:Provider,暴露服务,服务提供方
Client:Consumer,服务消费,调用远程服务
Registry:服务注册与发现
技术栈
JavaCore、Maven、反射
Java的动态代理
序列化:fastjson
- 序列化:Java对象转为二进制数组
- 反序列化:二进制数组转为Java对象
网络通信:jetty、URLConnection
实战(代码实现)
- 创建工程、制定协议、通用工具方法
- 实现序列化模块
- 实现网络模块
- 实现Server模块
- 实现Client模块
- gk-rpc使用案例