Bootstrap

Netty-RPC框架实现解

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"
>

<!-- 注册中心 
;