ikasoa

高性能轻量级 RPC 框架
授权协议 MIT
开发语言 Java
所属分类 Web应用开发、 RPC/XMLRPC项目
软件类型 开源软件
地区 国产
投 递 者 郝君博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ikasoa-rpc是一款高性能轻量级的RPC框架,基于apache thrift开发.

  • 抛弃了thrift框架中的idl,客户端可以像调用本地接口一样调用远程接口,减少了idl的学习成本和生成代码的过程.

  • 超轻量级和简单的依赖关系,并不会强依赖某些框架(比如spring).

  • 继承了thrift优秀的性能和跨语言能力,提供了负载均衡和多种序列化实现.并补充了socket连接池,服务发现,监控,数据加密,等配套功能.

  • 包含一个spring-boot-starter,使其在spring-boot上使用更方便.

”helloworld”示例

创建接口和实现

新建例子接口(ExampleService.java),对象(ExampleVO.java)和实现 (ExampleServiceImpl.java)类:

ExampleService.java

public interface ExampleService {
    // 查询对象
    public ExampleVO findVO(int id);
}

ExampleServiceImpl.java

public class ExampleServiceImpl implements ExampleService {
    @Override
    public ExampleVO findVO(int id) {
        return new ExampleVO(id, “helloworld”);
    }
}

ExampleVO.java

public class ExampleVO {
    private int id;
    private String string;
    public ExampleVO() {
    }
    public ExampleVO(int id, String string) {
        this.id = id;
        this.string = string;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getString() {
        return string;
    }
    public void setString(String string) {
        this.string = string;
    }
}

服务端

Server.java

import com.ikasoa.rpc.DefaultIkasoaFactory;
import com.ikasoa.rpc.IkasoaException;
import com.ikasoa.rpc.IkasoaServer;
public class Server {
    private static IkasoaServer ikasoaServer;
    public static void start() {
        try {
            if (ikasoaServer == null) {
                ikasoaServer = new DefaultIkasoaFactory().getIkasoaServer(ExampleServiceImpl.class, 9999);
            }
            // 启动服务
            ikasoaServer.run();
        } catch (IkasoaException e) {
            e.printStackTrace();
        }
    }
    public static void stop() {
        if (ikasoaServer != null && ikasoaServer.isServing()) {
            // 停止服务
            ikasoaServer.stop();
        }
    }
}

客户端

Client.java

import com.ikasoa.rpc.DefaultIkasoaFactory;
import com.ikasoa.rpc.ServerInfoWrapper;
public class Client {
    public static void call() {
        // 客户端获取远程接口实现
        ExampleService es = new DefaultIkasoaFactory().getInstance(ExampleService.class, new ServerInfoWrapper("localhost", 9999));
        // 客户端输出结果
        System.out.println(es.findVO(1).getString());
    }
}

执行类

Main.java

public class Main {
    public static void main(String[] args) {
        try {
            // 启动服务
            Server.start();
            Thread.sleep(100);
            // 客户端调用
            Client.call();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 停止服务
            Server.stop();
        }
    }
}

执行Main.java,或单独调用Server.start()启动服务后再调用Client.call()执行.
如输出“helloworld”则表示执行成功.

 相关资料
  • Uragano 旨在提供一个搭建和使用简单的高性能 RPC 框架。Uragano 是基于 netstandard2.0 开发的。Uragano 默认采用 DotNetty 实现远程通信,使用 MessagePack 进行编解码。

  • 本文向大家介绍轻量级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 是一个轻

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

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

  • 问题内容: 我一直在使用jQuery在基于Web的应用程序中完成整个AJAX魔术。但是,我来到了一个决定,我并不需要所有这些神奇功能jQuery有,除了它的AJAX功能(例如,,,和)。 您能推荐轻量级的跨浏览器AJAX库/框架(最大10 kb)吗? 问题答案: 您可以通过删除不需要的模块来缩小jQuery的大小,只需修改Makefile文件即可。