首页 > 编程语言 > 详细

RPC通讯框架——xxl-rpc(java语言beta版已经基本实现,正在将框架和spring进行集成,后续会考虑增加oc、c#和c++版本client端)

时间:2015-09-28 23:33:51      阅读:882      评论:0      收藏:0      [点我收藏+]

一款轻量级的分布式通讯RPC框架,简化分布式接口开发。

java语言beta版已经基本实现,正在将框架和spring进行集成,后续会考虑增加oc、c#和c++版本client端

目标:

1、简化开发:注册方和消费方,在适配器模式的原则下,基于接口开发;

2、跨语言:为了考虑跨语言,底层尽量采用通用序列化方案,已经实现两种跨语言序列化方案(坚决不采用16进制之类的,注解之类的,太啰嗦,16进制里边大量的硬编码太TM恶心);

3、轻量级:如若选择最精简版本进行开发,只需要依赖jackson和slf4j,这两个第三方依赖即可;

项目分包:

xxl-rpc

---xxl-rpc-core  :框架核心模块,已经实现底层接口代理模块,底层通讯封装模块等等(另外,注册中心模块在构思中);

---xxl-rpc-client  :java版本的client消费方的demo

---xxl-rpc-server  :java版本的server注册方的demo

部分核心代码:

消费方(每个spring中配置的消费方bean,底层实际上都会执行如下方法):

IDemoService hessianService = (IDemoService) new XxlRpcProxyFactory().getInstance("http://localhost:8080/rpc/hessian", IDemoService.class, ProxyType.HESSIAN);

服务方(此处代码为统一入口):

……
request.setCharacterEncoding("UTF-8"); int size = request.getContentLength(); InputStream is = request.getInputStream(); byte[] reqBodyBytes = readBytes(is, size); // hessian 2 object InvocationRequest invoke = (InvocationRequest) HessianSerializeUtils.deserialize(reqBodyBytes);
……

至此,服务方已经接收到消费方的请求,并反序列化为具体调用服务方service,invoke后将返回序列化后压入response即可;

 

框架正在自测和完善中,1.0版不久将推出,届时,我会将源码开源,我是一个崇尚开源的,一个普通的coder。

 

RPC通讯框架——xxl-rpc(java语言beta版已经基本实现,正在将框架和spring进行集成,后续会考虑增加oc、c#和c++版本client端)

原文:http://www.cnblogs.com/xuxueli/p/4845111.html

(0)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!