高性能轻量级 RPC 框架 ikasoa
- 授权协议: MIT
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: https://gitee.com/null_818_3165/ikasoa
- 软件文档: https://gitee.com/null_818_3165/ikasoa
软件介绍
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”则表示执行成功.
算法设计与实验题解
王晓东 / 电子工业 / 2006-9 / 46.00元
《算法设计与实验题解》是与普通高等教育“十一五”国家级规划教材《计算机算法设计与分析》(第2版)配套的辅助教材,对主教材中的全部习题做了解答或给出了解题思路提示,并对主教材的内容进行了扩展,有些主教材中无法讲述的较深入的主题以习题的形式展现出来。为了提高学生解决实际问题的能力,《算法设计与实验题解》还将主教材中的许多习题改造成算法实现题,要求学生设计出算法并上机实现。作者还结合精品课程建设,进行了......一起来看看 《算法设计与实验题解》 这本书的介绍吧!