轻量级去中心化 RPC 框架 supine

Apache
Java
跨平台
2019-08-30
justlive1

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);
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

3211个词及其反义词(二)(精选考纲词)

CET4、CET6、GRE、IELTS、TOEFL、考研英语总的词汇量为14055,有3211个单词有反义词。

2015/03/28 02:18
190
0
3211个词及其反义词(一)(精选考纲词)

CET4、CET6、GRE、IELTS、TOEFL、考研英语总的词汇量为14055,有3211个单词有反义词。

2015/03/28 02:01
290
0
分析996个词根在各大考纲词汇中的作用(三)

CET4、CET6、GRE、IELTS、TOEFL、考研英语总的词汇量为14055,分析词根总数为996,有11544个单词分布在这些词根中,剩下的2511个词汇没有任何词根信息。

2015/03/26 07:48
245
1
分析在各大考纲词汇中同时拥有前缀后缀和词根的词(六)

CET4、CET6、GRE、IELTS、TOEFL、考研英语总的词汇量为14055,有11544个单词含有词根信息,有5526个单词含有前缀信息,有9525个单词含有后缀信息。那么有多少个单词同时拥有前缀后缀和词根呢...

2015/03/27 04:14
107
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部