simple-rpc

SpringBoot2+Netty打造通俗简版RPC通信框架

萝らか妹 提交于 2020-04-28 07:35:09
2019-07-19:完成基本RPC通信! 2019-07-22:优化此框架,实现单一长连接! 2019-07-24:继续优化此框架:1、增加服务提供注解(带版本号),然后利用Spring框架的在启动时立刻保存提供服务的实现类。2、优化NettyConfig(区分消费者和提供者配置),因为一个项目可同时作为服务提供者和服务消费者,所以增加两个配置来区分是提供服务还是消费服务,而且,因为如果都是本地启动着两个项目,那么IP必定是一样的,所以需要区分服务端口和消费端口。不然会有下面事故:先启动client,再启动server,但是他们同样依赖于netty包,所以client也启动了netty服务,只配置一个相同的端口会导致client的RPC通信也是通道自己启动的Netty服务。。。 2019-07-27:优化此框架:增加注册中心,使用Zookeeper作为注册中心。 接下来:我会优化Netty方面的,例如增加心跳检测、业务处理统一使用自定义业务线程池、客户端或服务端异常断开处理等,然后会优化一下项目的结构和rpc通信返回结果等,最后可能会考虑增加Redis作为注册中心。等完成所有的这些,就会对整个项目重新写一篇文章来介绍一下自己的整体思路,当然了,如果有同学需要的,可以在下方留言,我可以提前写文章,对完成注册中心及之前的代码进行详细介绍,之后再补充其他新增的功能实现过程!~ 2019

simpleRpc解析-服务端

佐手、 提交于 2019-12-09 20:19:05
本文主要是对勇哥的simpleRpc进行了简单的剖析,用来学习rpc,加深对rpc的理解! 源码地址: http://git.oschina.net/huangyong/rpc 勇哥博客:https://my.oschina.net/huangyong/blog/361751 rpc(Remote Procedure Call)主要是将远程服务调用包装成为本地服务调用,使用起来比较直观。以前,项目中有使用过将定时任务模块剥离出来,单独部署,定时任务模块使用rmi调用主系统的服务,使用起来和rpc应该是类似。 首先是down下源码,部署在本地IDE,具体过程参见gitee介绍吧! 下面是eclipse的工程截图: 先试用下: 1:启动本地zk,使用默认配置(工程中的默认配置就是ZK的默认配置,基本不用改) 2:启动rpc-sample-server工程的RpcBootstrap.java 启动日志: start server connect zookeeper create address node: /registry/com.xxx.rpc.sample.api.HelloService-sample.hello2/address-0000000003 register service: com.xxx.rpc.sample.api.HelloService-sample