为发展大规模的后端项目,所有功能模块都分开并部署在不同的服务器上,因此,不同模块之间的跨网络通信是必不可少的,因此,RPC协议诞生,RPC是广泛的跨网络通信,具体框架如Dubbo。从架构来说,RPC通常有一个登记中心,管理客户和服务端,服务端提供外部进入登记中心,客户接收服务端口调用,实现跨网络通讯

动物园管理员安装
动物园管理员是一种分布式管理软件,通常用于RPC通信的登记中心
1.下载 Zookeeper
网站下载地址: https://zookeeper.Apache.org/releases.html#download
下载稳定版本:

2.向服务器转移
在我一边,使用sftp上传到服务器上:
3. 解压
4.创建数据文件夹
动物园主需要存储服务终止登记信息的路径
在配置文件中指定路径
修改配置文件内容:
5.打球员
在文件夹下运行壳牌脚本:
查看zookeeper状态可以执行:
关闭防火墙:
Usezookeeper
1. 导入依赖
新的Maven项目,导入依赖:
2.使用zookeeper注册内容
写测试方法:
执行结果:
连接成功
info:/demos0000000001
3.在动物园里获取内容
编写test方法:
结果:
连接成功
hello
三、RMI使用
RMI是一个由JDK提供的远程调用方法工具,允许一个Java程序像调用本地方法一样调用另一个Java程序的内容,并不支持多语言
RMI过程大致分为两个步骤,第一,它拥有注册表,用于存储服务端对象,服务端通过绑定方法注册对象;其次,客户端通过查找方法从注册表访问服务端对象。类似Android Binder机制,客户端也具有服务端对象的类
1. 编写服务端
创建一个马文模块作为RMI服务终结项目

1.1外部接口的定义
要求:继承到远程接口,方法需要抛出 RemoteException例外
1.2 定义实现类
要求:继承实现序列化接口的UncastRemoteObject类
1.3 启动
执行下列主要方法:
2. 编写客户端
为客户端映射的新模块

2.复制外部接口

2.2获取远程对象,调用方法
结果:
远程调用方法的结果:rmihello
第四,RMI与动物园主结合,实现RPC框架
其次,利用RMI作为传输协议,动物园主作为登记中心,并实施RPC框架
1. bean模块
创建一个公共JavaBean的Maven模块

定义一个实体类实现序列化接口:
2.服务模块
创建一个Maven模块作为外部接口,由 both thermi客户端和服务端使用

进口豆类模块的依赖性:
定义外部接口继承远程接口:
3.提供商模块
创建一个Maven模块作为服务端

输入服务模块依赖:
实现对外接口:
启动方法:
4.消费者模块
创建一个Maven模块作为客户端

输入SpringBoot依赖,服务模块依赖:
4.1服务水平
定义服务接口:
服务接口实现类:
4.2控制层
处理单元:
4.3启动弹簧靴
浏览器访问结果:

项目地址:
https://gitee.com/aruba/rpcdemo.git
