supine

轻量级去中心化 RPC 框架
授权协议 Apache
开发语言 Java
所属分类 Web应用开发、 RPC/XMLRPC项目
软件类型 开源软件
地区 国产
投 递 者 姬正文
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

supine是一个轻量级去中心的RPC框架

  • 使用AIO通讯
  • 采用Multicast进行服务注册发现

快速开始

创建Maven项目

<dependency>
    <groupId>vip.justlive</groupId>
    <artifactId>supine</artifactId>
    <version>${lastVersion}</version>
</dependency>

Gradle

compile 'vip.justlive:supine:$lastVersion'

服务端

  • 直连方式
ServiceConfig config = new ServiceConfig(10086);
ServiceFactory factory = new ServiceFactory(config);

// 注册服务
factory.register(new SayImpl());
factory.register(new SayImpl2(), "2");

factory.start();
// 服务端常驻
factory.sync();
  • multicast注册
ServiceConfig config = new ServiceConfig(10086);

// 设置注册类型
config.setRegistryType(1);

// 设置注册地址,不设置时使用默认值(234.69.69.69:56969)
config.setRegistryAddress("234.69.69.69:56969");
ServiceFactory factory = new ServiceFactory(config);

// 注册服务
factory.register(new SayImpl());
// 指定服务版本
factory.register(new SayImpl2(), "2");

factory.start();
// 服务端常驻
factory.sync();

客户端

  • 直连方式
ClientConfig config = new ClientConfig();

// 设置长连接空闲超时时间,默认120秒
config.setIdleTimeout(120);

// 直连时设置服务端地址
config.setRegistryAddress("localhost:10086");

// 是否异步调用,默认为同步
config.setAsync(false);
ReferenceFactory factory = new ReferenceFactory(config);

// 创建接口代理
Say say = factory.create(Say.class);
// 调用接口
String result = say.hello(msg);
  • multicast方式
ClientConfig config = new ClientConfig();

// 开启异步调用
config.setAsync(true);

// 指定注册地址,不填则使用默认值(234.69.69.69:56969)
config.setRegistryAddress("234.69.69.69:56969");
ReferenceFactory factory = new ReferenceFactory(config);

// 创建指定版本的接口代理
Say say = factory.create(Say.class, "2");
// 调用接口,注意异步方式返回值为null
say.hello(msg);

// 异步方式下需要调用如下方法获取Future
ResultFuture<String> future = ResultFuture.future();

// 设置回调
future.setOnSuccess(System.out::println);
future.setOnFailure(System.out::println);

// 获取结果
future.get();
// 获取结果,有等待超时时间
future.get(1, TimeUnit.SECONDS);
 相关资料
  • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha

  • 本文向大家介绍轻量级的Web框架Flask 中模块化应用的实现,包括了轻量级的Web框架Flask 中模块化应用的实现的使用技巧和注意事项,需要的朋友参考一下 Flask是一个轻量级的Web框架。虽然是轻量级的,但是对于组件一个大型的、模块化应用也是能够实现的,“蓝图”就是这样一种实现。对于模块化应用的实现,在Flask 0.2版本中进行了设计。本文暂时不对“蓝图”做详细的介绍,而是先从0.2版本

  • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

  • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

  • MOAC平台上的去中心化应用(DAPP)即可以部署在母链,也可以单独部署一条应用链。 母链 DAPP 应用 母链部署的 DAPPs 和以太坊的部署过程相同: html/dapps/ERC20.html html/dapps/ERC721.html 如果开发者想把基于以太坊的应用移植到MOAC平台,只需做很小的改动,具体可以参考: html/dapps/MoveToMoac.html DApps 应

  • 本文向大家介绍浅谈Android轻量级的数据缓存框架RxCache,包括了浅谈Android轻量级的数据缓存框架RxCache的使用技巧和注意事项,需要的朋友参考一下 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Gl