跳到主要内容

概述

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, NetSerializer 模块来实现最高性能。
  • 通过重新连接到后备和复制服务器的容错功能
  • 对消息管道的本地支持
  • 是具有特定应用业务逻辑的接近实时的服务器的理想选择
  • 在高负荷的生产环境中测试

具有广泛云策略的异步二进制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.0-beta2 (见上 GithubMaven)。)