点击“开发者技术前线”,选择“星标????”
在看|星标|留言, 真爱

"
RPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。RPC 可以很好的解耦系统,如 WebService 就是一种基于 HTTP协议的 RPC。
EasyRPC 框架使用的一些技术所解决的问题:
通信:使用Netty作为通信框架。
Spring:使用Spring配置服务,加载Bean。
动态代理:客户端使用代理模式透明化服务调用。
消息编解码:使用Protostuff序列化和反序列化消息。
"
服务端发布服务
一个服务接口

一个服务实现

spring-server.xml 配置文件

服务在启动的时候通过 Spring 加载自定义 Bean

通过实现 export 启动 Netty Server,并注册服务到 Server

客户端调用服务
Junit Test

spring-client.xml 配置文件

客户端调用使用代理模式调用服务

代理类,为 RpcFuture 设置超时,否则会出现卡死现象

通过 ConsumerFactoryBean 注入 Spring Bean

通过 refer 启动 Client Server

通过对 connectFuture.channel().closeFuture 听见监听,实现断线自动重练

基于 Protostuff 实现序列化和反序列化工具

由于处理的是 TCP 消息,TCP 的粘包处理 Handler。

消息编解码时开始4个字节表示消息的长度,也就是消息编码的时候,先写消息的长度,再写消息。

前线推出学习交流群,加群一定要备注:
研究/工作方向+地点+学校/公司+昵称(如大数据+上海+上交+可可)
根据格式备注,可更快被通过且邀请进群,领取一份专属学习礼包扫码加我微信进群大厂内推和技术交流,和前辈大佬们零距离
历史推荐
今日头条技术架构到底有多牛?
腾讯推出高性能 RPC 开发框架
滴滴十大技术方向开源项目出炉!
阿里巴巴微服务架构的四大金刚利器
腾讯全文检索引擎 wwsearch 正式开源
好文点个在看吧!
本文介绍了EasyRPC框架的实现原理,包括使用Netty作为通信框架,Spring进行服务配置和Bean加载,动态代理实现透明化的服务调用,Protostuff用于消息的序列化和反序列化,以及TCP消息的粘包处理。此外,还展示了服务端发布服务和客户端调用服务的配置及操作,强调了RpcFuture超时设置和断线重连机制的重要性。
873

被折叠的 条评论
为什么被折叠?



