ZRPC

基于 Netty 实现的 RPC 框架
授权协议 GPL
开发语言 Java
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 微生德运
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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<String> 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);
  • zrpc 项目地址:https://github.com/hunyxv/zrpc 简介 zrpc 是一款简单易用的 RPC 框架。 其支持以下4种请求类型的 RPC 方法: 请求-响应 流式请求 流式响应 双向流式 zrpc 依赖 ZeroMQ 库 安装 zeromq, 在 release 下载并编译安装: tar -zxvf zeromq-4.x.x.tar.gz cd zeromq-4.x.x

 相关资料
  • 本文向大家介绍基于NIO的Netty网络框架(详解),包括了基于NIO的Netty网络框架(详解)的使用技巧和注意事项,需要的朋友参考一下 Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 Netty的优点有: a、功

  • 本文向大家介绍基于JavaScript实现弹出框效果,包括了基于JavaScript实现弹出框效果的使用技巧和注意事项,需要的朋友参考一下 弹出框在网站页面中是必不可少的一部分,今天借助呐喊教程平台给大家分享使用js实现简单的弹出框效果,本文写不好,还请见谅!   首先我们来分析弹出框的部件.简单弹出框分为头,内容,尾部. 头部中有标题和关闭按钮,内容就可以图文,媒体,iframe,flash等等

  • 在TCP/IP的基于流的传输中,接收的数据被存储到套接字接收缓冲器中。不幸的是,基于流的传输的缓冲器不是分组的队列,而是字节的队列。 这意味着,即使将两个消息作为两个独立的数据包发送,操作系统也不会将它们视为两个消息,而只是一组字节(有点悲剧)。 因此,不能保证读的是您在远程定入的行数据。 例如,假设操作系统的堆栈已收到三个数据包: 由于基于流的协议的这种通用属性,在应用程序中以下面的碎片形式(只

  • 本文向大家介绍基于jQuery Easyui实现登陆框界面,包括了基于jQuery Easyui实现登陆框界面的使用技巧和注意事项,需要的朋友参考一下 效果图 CSS HTML 以上所述是小编给大家介绍的基于jQuery Easyui实现登陆框界面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍基于.Net实现前端对话框和消息框,包括了基于.Net实现前端对话框和消息框的使用技巧和注意事项,需要的朋友参考一下 关于前端对话框、消息框的优秀插件多不胜数。造轮子是为了更好的使用轮子,并不是说自己造的轮子肯定好。所以,这个博客系统基本上都是自己实现的,包括日志记录、响应式布局等等一些本可以使用插件的。好了,废话不多时。我们来实现自己的对话框和消息框。 对话框 要求:可拖动、点击按

  • 本文向大家介绍详解Spring框架之基于Restful风格实现的SpringMVC,包括了详解Spring框架之基于Restful风格实现的SpringMVC的使用技巧和注意事项,需要的朋友参考一下 如果说现在你要做一个系统,假设说有一个模块属于公告管理,那么我们可能安排路径的时候会这样安排NewsAction路径:  增加新闻:/pages/back/admin/news/add.action;