首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >揭秘 | 一个轻量级分布式 RPC 框架 — EasyRPC

揭秘 | 一个轻量级分布式 RPC 框架 — EasyRPC

作者头像
京东技术
发布2019-05-05 15:53:25
9120
发布2019-05-05 15:53:25
举报
文章被收录于专栏:京东技术京东技术

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个字节表示消息的长度,也就是消息编码的时候,先写消息的长度,再写消息。

作者简介

张松然。京东零售商家研发部架构师。对构建高性能,高可用的大规模分布系统有丰富的开发经验,有多年NIO领域的设计、开发经验,对HTTP、TCP长连接技术有深入研究与领悟。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 京东技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档