您的位置:首页 > Web前端

LesenRPC-基于netty/protobuffer的高性能RPC框架

2014-03-23 15:06 579 查看
LesenRPC

目录

1 简介


2 架构


3 使用指南

4 发展方向

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、针对移动设备优化客户端

服务端传输层代码/article/5903947.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: