根据使用协议的不同, 服务端的开发还是有较大区别
服务提供端需要这样几个东西

  1. Netty(如果是HTTP协议就提供Controller即可)
  2. 协议解析器
  3. 请求体解析器
  4. 线程池, 执行器
  5. 通过Spring来管理服务

1. 协议选择

1.1. 使用HTTP协议

由于HTTP协议是通用的协议, 有大量框架直接就支持HTTP的访问
这里我们选择使用SpringMVC来接收请求即可

1.1.1 controller

使用一个controller来接收所有请求

1.1.2 Bean映射

找到指定的方法进行执行

1.2. 使用自定义协议

自定义协议就需要自己从头进行开发了

1.2.1 Netty

使用Netty来接受网络连接
并对连接中的数据流进行处理, 解决半包粘包的问题
取出请求体

1.2.2 请求体实例化器

将请求体中的数据, 通过JSON序列化工具, 实例化成JAVA对象

1.2.3 执行线程池

将此请求对象放入线程池中执行
并注册Callback

1.2.4 返回响应

请求处理结束之后, Callback被触发, 将报文组装好, 通过Netty返回给调用方

3. 执行线程池

根据配置, 创建一个线程池, 专门用于处理RPC请求

4. 序列化工具

5. 方法路由器

如何通过报文中的信息, 找到对应的服务, 善用Spring的功能

6. 接口

为了能让远程服务器向调用本地服务一样, 需要提供一个jar包, 提供开放的接口