ikasoa高性能轻量级 RPC 框架
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”则表示执行成功.
评论
前端框架新势力大盘点
点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群近年来,前端领域快速发展,新的框架不断涌现,为开发者提供了更多选择和解决方案。尽管 React、Vue、Angular、Next.js、Preact 等老牌框架依然稳坐市场主流,但新势力前端框架的崛起也为特定场景带来了更佳的适配和优
前端Q
0
110 个 Java 主流组件和框架整理,常用的应有尽有,建议收藏!!
点击关注公众号,Java 干货及时推送↓推荐阅读:铜三铁四,怒拿 35K * 14 薪!整理:四猿外以下排序是按照从技术组件到开发框架到代码工具,也有一些实在不好分类的,就放到最后了。WEB 容器Tomcathttps://tomcat.apache.org/Jettyhttps://ww
Java技术栈
0
大模型“芝麻开门”的首选框架,LangChain全新教程!附600分钟详解视频
LangChain 作为一个开源的大语言模型应用框架,自诞生之日起就备受瞩目。然而,它的发展之路却走过了不少曲折。一开始,LangChain 遭受了不少质疑和非议。有人认为它只适合入门学习,代码质量和设计缺乏工业级的严谨性,难以应用于生产环境。的确,作为一个新兴项目,LangChain 的早期版本还
机器学习算法与Python实战
10
高性能GPU服务器硬件拓扑与集群组网
01、术语与基础大模型训练一般都是用单机 8 卡 GPU 主机组成集群,机型包括 8*{A100,A800,H100,H800} 。下面一台典型 8*A100 GPU 的主机内硬件拓扑:| 典型 8 卡 A100 主机硬件拓扑本文来自“高性能GPU服务器硬件拓扑与集群组网”。本节将基于这张
架构师技术联盟
10
一个开源的轻量级agent框架-Agere
Datawhale干货 推荐人:happyapplehorse,Datawhale学习者简介agere是一个开源的轻量级agent框架,主要特点是通用性和完全的可定制性。它通过将一个复杂流程拆解为一系列独立的小步骤,来简化构建具有复杂逻辑的agent的流程。agere是agen
Datawhale
10
Gin 框架介绍与快速入门
目录Gin 框架介绍与快速入门1.gin.Engine2.gin.Context1.安装2.导入3.第一个Gin 应用1. 快速和轻量级2. 路由和中间件3. JSON解析4. 支持插件5. Gin相关文档一、Gin框架介绍二、基本使用三、应用举例四、Gin 入门核心...
马哥Linux运维
0
Rust网络框架Pingora源码阅读1
要想深入Pingora应该是需要阅读源代码的,所以分析一下源代码,虽然Pingora没有提供丰富的示例,但是提供了一些不错的文档,比如它的internals.md文档,提供了很多细节和示意图,本系列文章会引用很多其中的示意图,...
邓胖
0
Caffeine Cache-高性能Java本地缓存之王
前面刚说到Guava Cache,他的优点是封装了get,put操作;提供线程安全的缓存操作;提供过期策略;提供回收策略;缓存监控。当缓存的数据超过最大值时,使用LRU算法替换。这一篇我们将要谈到一个新的本地缓存框架:Ca...
浪尖聊大数据
0