LesenRPC-基于netty/protobuffer的高性能RPC框架
Posted on 2014-03-23 15:06 NotOnlyJava 阅读(2908) 评论(6) 编辑 收藏 举报LesenRPC
目录
1简介
LesenRPC是一款基于netty和protobuffer的高性能RPC框架。LesenRPC 采用四层架构:传输层 协议层 编解码层 应用层,
传输层:基于netty,充分利用netty提供异步的、事件驱动的功能,保证服务端的高并发 高性能.
协议层:基于protobufer,保证多语言无缝调用.
编解码层:参考spring架构,采用工厂模式和观察者模式,对开发者既能透明化调用,也可以轻松的扩展,介入系统的任何流程.
应用层:业务代码,客户端只需业务接口即可实现透明调用
2 架构
3 使用指南
一 从这里获取源码: http://lesen-rpc.googlecode.com/svn/trunk/
二 服务端 1 制定要导出的接口,并将你的接口打包提供给客户端,如: interface TestServiceItf { void add(int a,int b); } 2 提供一个服务端实现
3 创建RPCService app = new RPCService(1082);
4 导出你的服务app.exportService("test", new TestService());
5 调用RPCService.run()
参见: com.lesen.rpc.example.ServiceTest
package com.lesen.rpc.example; import com.lesen.rpc.common.export.TestService; import com.lesen.rpc.service.RPCService; public class ServiceTest { public static void main(String[] args) throws Exception { RPCService app = new RPCService(1082); app.exportService("test", new TestService()); app.run(); } }
三 客户端
参见:com.lesen.rpc.example.ClientTest
package com.lesen.rpc.example; import com.lesen.rpc.client.RPCClient; import com.lesen.rpc.common.export.Service; public class ClientTest { public static void main(String[] args) { String serverName = "test"; String rpcUri = "rpc://127.0.0.1:1082"; RPCClient client = new RPCClient(rpcUri); client.connectService(); Service service = client.getRemoteService(serverName, Service.class);
String result = service.test("test")
System.out.println(result);
client.close();
}
}
4 发展方向
1、支持多语言
2、针对移动设备优化客户端