概述
ActiveJ RPC是一个轻量级和方便的Java库,用于开发 高负载分布式应用 和类似Memcached的解决方案。 它为微服务的实现引入了一种完全 , ,并且 ,克服了利用HTTP协议的JSON或XML编码的开销。 ActiveJ RPC由世界上最快的JVM串行器ActiveJ Serializer驱动,在TCP上运行,支持流水线请求,并有一个自定义的 高性能二进制流媒体协议。 与此同时,ActiveJ RPC利用Datastream模块进行异步数据处理和背压控制。 它还内置了常用的RPC 策略和高容错性。
为什么是ActiveJ RPC?
- 在单个CPU核心上,每秒有高达~15M个请求的出色性能
- 用于定义客户和服务器消息处理程序的简单API
- 范围广泛的RPC策略(先到先得、轮回、交会散列等),可以简单地组合起来
- 定制的高性能流媒体协议
- 利用ActiveJ的 Datastream, Net 和 Serializer 模块来实现最高性能。
- 通过重新连接到后备和复制服务器的容错功能
- 对消息管道的本地支持
- 是具有特定应用业务逻辑的接近实时的服务器的理想选择
- 在高负荷的生产环境中测试
具有广泛云策略的异步二进制RPC协议
ActiveJ RPC的特点是高度优化的灵活的服务器和客户端实现,以及预定义的云策略。 利用这些技术,你甚至可以方便地创建 复杂的可扩展解决方案 ,如 高性能微服务或类似Memcached的 服务器。
RpcServer rpcServer(Eventloop eventloop) { return RpcServer.create(eventloop) .withMessageTypes(String.class) .withHandler(String.class, String.class, request -> Promise.of(" Hello " request) ) .withListenPort(SERVICE_PORT);}
RpcClient rpcClient(Eventloop eventloop) { return RpcClient.create(eventloop) .withMessageTypes(String.class) .withStrategy(server(new InetSocketAddress(SERVICE_PORT)) );}
rpcClient.sendRequest("World") .whenResult(response -> System.out.println(response)); //打印出 "Hello World"
在你的项目中添加ActiveJ RPC
您可以通过导入ActiveJ RPC的Maven资源库将其添加到您的项目中。 这些文档涵盖了ActiveJ RPC的最新版本 v5.4.3 (见上 Github 或 Maven)。)