高性能轻量级 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”则表示执行成功.
解密搜索引擎技术实战
罗刚 / 2011-6 / 69.80元
《解密搜索引擎技术实战-Lucene&Java精华版(附盘)》,本书主要包括总体介绍部分、爬虫部分、自然语言处理部分、全文检索部分以及相关案例分析。爬虫部分介绍了网页遍历方法和如何实现增量抓取,并介绍了从网页等各种格式的文档中提取主要内容的方法。自然语言处理部分从统计机器学习的原理出发,包括了中文分词与词性标注的理论与实现以及在搜索引擎中的实用等细节,同时对文档排重、文本分类、自动聚类、句法分析树......一起来看看 《解密搜索引擎技术实战》 这本书的介绍吧!
UNIX 时间戳转换
UNIX 时间戳转换
HEX CMYK 转换工具
HEX CMYK 互转工具
