文章目录
Netty-RPC框架实现解
流程图
关键组件
大体上我将整个框架分为四个部分Provider , Consumer , API ,server , Register
- Provider : 生产者 - 服务的提供方,用于提供服务的实现
- Consumer : 消费者 -服务的消费方,用于消费生产者
- API : 对外开放接口 - 生产者和消费者共同依赖的对象,主要用于定义公共要用的接口,方便调用
- Register : 对生产者进行注册,笔者这里使用的是Redis注册中心,主要为了方便
- Server : 服务端核心,这里主要写Netty进行通讯的主要框架
实现细节
- API : 对外开放接口 - 生产者和消费者共同依赖的对象,主要用于定义公共要用的接口,方便调用
定义的接口:
public interface HelloService {
String hi();
String say(String str);
String sayHi(Hi hi);
}
定义的实体对象:
public class Hi {
private String userName;
private String sayMsg;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSayMsg() {
return sayMsg;
}
public void setSayMsg(String sayMsg) {
this.sayMsg = sayMsg;
}
}
- Provider : 生产者 - 服务的提供方,用于提供服务的实现 都依赖与Server
对API的对象实现
@Service("helloService")
public class HelloServiceImpl implements HelloService {
@Override
public String hi() {
return "KSK 链接完成呀!";
}
@Override
public String say(String str) {
return "我成功了嘛?";
}
@Override
public String sayHi(Hi hi) {
return "认真 努力 慢慢 就能成功啦!";
}
}
配置文件配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rpc="http://rpc.ksk.cn/schema/rpc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://rpc.ksk.cn/schema/rpc
http://rpc.ksk.cn/schema/rpc/rpc.xsd"
>
<!-- 注册中心