ZRPC- 基于 Netty 实现的 RPC 框架

网友投稿 868 2022-10-21

ZRPC- 基于 Netty 实现的 RPC 框架

ZRPC- 基于 Netty 实现的 RPC 框架

ZRPC

基于Netty实现的RPC框架

服务端

RpcServer server = new RpcServer("127.0.0.1",1234);  HelloServiceImpl impl = new HelloServiceImpl();  server.export(HelloService.class, impl);

客户端

RpcClient client = new RpcClient("127.0.0.1",1234);  HelloService service = client.refer(HelloService.class);  //同步调用  System.out.println(service.hello("test rpc"));

异步调用

默认的远程调用都是同步的,发起异步调用需要设置RpcContext.setAsync(true),异步调用有两种方式:Future方式、callback方式,可以单独使用也可以混合使用

Future方式RpcClient client = new RpcClient(“127.0.0.1”,1234);  HelloService service = client.refer(HelloService.class);  RpcContext ctx = RpcContext.getContext();  ctx.setAsync(true);  String obj=service.hello(“test rpc”);  System.out.println(obj==null);  Future f =ctx.getFuture();  System.out.println(f.get());callback方式RpcClient client = new RpcClient(“127.0.0.1”,1234);  HelloService service = client.refer(HelloService.class);  RpcContext ctx = RpcContext.getContext();  ctx.setAsync(true);  ctx.setCallback(new Callback() {@Override        public void onSuccess(Object result) {            System.out.println(“success  ”+ result);        }        @Override        public void onError(Throwable thr) {               System.out.println(“error”);               thr.printStackTrace();        }        });  String obj=service.hello(“test rpc”);  System.out.println(obj==null);

单向调用

单向调用是一种特殊类型的异步调用,意味着客户端对本次调用不期待服务端的响应结果。实际上服务端对于单向调用请求也不会作出响应。对于特定场景单向调用性能更好,但并不那么可靠。

//单向调用  RpcContext ctx = RpcContext.getContext();  ctx.setOneway(true);  System.out.println(service.hello("test rpc")==null);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LuaKit- Lua 开发的浏览器框架
下一篇:openhandx batch- 异步批量调度框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~