RPC的概念已经深入人心了,但是到底该如何编程实现呢,接下来给大家讲解一个简单的实现思路吧!
前言
通过手敲RPC框架的部分核心实现代码,深刻理解框架的运行原理。
提示:以下是本篇文章正文内容,下面案例可供参考
一、项目结构
![](https://img-blog.csdnimg.cn/bb6657728f684372a41c28273ccdfd92.png)
项目结构如图所示,有两个工程rpc工程做rpc的实现,业务工程的service-consumer远程调用service-provider;途中的红箭头为依赖关系: service-consumer添加rpc-client依赖,service-provider添加rpc-server依赖,rpc-client和rpc-server分别添加rpc-core依赖。
二、整体架构
整体架构如图所示,使用zookeeper作为注册中心。
三、实现流程概述
1、RPC服务端实现在
rpc-server
模块中
1.1创建引导类,注入启动器,提供一个initRpcServer方法,使用@PostConstruct注解项目启动是执行;
1.2启动器类,注入服务注册类,提供run方法中实现//1 服务注册和//2 启动服务,监听端口,等待接收请求功能;
1.3服务注册 接口和实现基于zk的实现
@Component
@Slf4j
public class ZkRegistry implem