六和开奖现场基于Protobuf的RPC Server 0.1版发布
分类:计算机知识

六和开奖现场,Fepss致力于免费OA的开发和推广,利用免费OA系统推动中国中小型企业信息化的发展,FEPSS公司同时积极参如开源发展,日前FEPSS公司将其核心的RPC Server进行了开源。 FEPSS RPC Server是负责整个系统的后台核心服务,利用Google的Protobuf协议、Apache的高性能网络库 Mina、Tapestry5-IOC.在普通的2G内存、2.4G的CPU的笔记本上能达到并发10K的请求,已经平稳运行在系统中,支撑整个系统的多项服务。 FEPSS RPC Server 项目信息: source: download: 快速上手指南: 通过查看RpcApplicationTest.java可以了解具体的实现方法1) 定义你的RPC服务类,例如: test.proto

package protobuf.socketrpc;option java_package = "com.fepss.rpc.test";option java_outer_classname = "TestProto";message User{ optional string userName=1;}message Result{ optional string result=1; optional bool success=2;}service TestService { rpc TestMethod(User) returns(Result);}

2) 使用Google的protoc来产生服务接口protoc test.proto --java_out .3) 实现你的服务方法.

public class TestServiceImpl extends TestService{ @Override public void testMethod(RpcController controller, User request, RpcCallbackResult done) { Builder builder =Result.newBuilder().setResult("get user"+request.getUserName()); builder.setSuccess(true); done.run(builder.build()); }}

4) 运行一个远程调用测试,RpcApplicationTest.java

@Test public void testRpc() throws IOException{ RpcApplication application = new RpcApplication(TestModule.class); try{ application.start(); // create client to call rpc RpcChannelImpl channel = new RpcChannelImpl(RpcConstants.DEFAULT_HOST,RpcConstants.DEFAULT_PORT); RpcController controller = channel.newRpcController(); Stub service = TestService.newStub(channel); // request data String reqdata = "Request Data"; User request = User.newBuilder().setUserName(reqdata).build(); // response callback RpcCallbackResult done = new RpcCallbackResult() { @Override public void run(Result result) { Assert.assertEquals(result.getResult(), "get userRequest Data"); Assert.assertTrue(result.getSuccess()); } }; // execute remote method service.testMethod(controller, request, done); Assert.assertFalse(controller.failed()); Assert.assertEquals(controller.errorText(), null); }finally{ application.stop(); } } public static class TestModule{ public static void contributeIoHandler(MappedConfigurationString,Service configruation){ configruation.add(TestService.getDescriptor().getFullName(),new TestServiceImpl()); } }

5)欢迎反馈 jcai AT Fepss.com

本文由六和开奖现场发布于计算机知识,转载请注明出处:六和开奖现场基于Protobuf的RPC Server 0.1版发布

上一篇:页面白屏与瀑布流分析方法 下一篇:WiFi 终于被 ‘松绑’ 了
猜你喜欢
热门排行
精彩图文