高性能轻量级 RPC 框架 ikasoa

码农软件 · 软件分类 · RPC/XMLRPC项目 · 2019-04-11 12:14:35

软件介绍

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”则表示执行成功.

本文地址:https://codercto.com/soft/d/3341.html

点击的奥秘:运用说服心理术提升在线影响力(全彩)

点击的奥秘:运用说服心理术提升在线影响力(全彩)

Nathalie Nahai(娜塔莉.纳海) / 陈旭 / 电子工业出版社 / 2014-9-1 / 75.00元

用户的每一次点击,不管是在虚拟商店购物,还是在浏览企业网站,或是漫无目的地把玩手机,都蕴藏着基于心理学的无穷奥秘。《点击的奥秘:运用说服心理术提升在线影响力》作者为全球知名的网络心理学家,其在《点击的奥秘:运用说服心理术提升在线影响力》中将心理学、神经科学及行为经济学巧妙地结合在一起,挖掘和提炼出一套行之有效的网络用户引导策略——既涵盖在线说服最新研究动向,也包括最前沿的科技成果,以及其他诸多惊人......一起来看看 《点击的奥秘:运用说服心理术提升在线影响力(全彩)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具