跳到主要内容

Alibaba RSocket Broker特性

Alibaba RSocket Broker除了支持RSocket通讯以外,还支持各种特性,主要特性分类如下:

开发支持

  • rsc命令行测试支持
  • 外部的单元测试和集成测试支持: RSocket Mock Server, TestContainer等
  • 支持Kubernetes Liveness & Readiness Probes
  • GraalVM native-image支持
  • Kotlin支持
  • 日志查看: 基于error code方式的日志记录,排查问题更方便
  • Metrics采集: 设计到连接、服务接口
  • Docker镜像支持: 快速启动RSocket Broker,方便开发和测试

通讯层

  • 基于Java Interface接口通讯规约
  • 接入层Java SDK支持负载均衡和集群同步
  • 支持WebSocket通讯:突破防火墙限制,支持外部伙伴安全接入
  • 支持新版Linux内核(5.9版本以上)io_uring特性: Ubuntu 21.04兼容测试通过
  • 支持RDMA(实验性)

Reactive框架支持

主要支持以下三个Java Reactive框架

  • Project Reactor
  • RxJava 3
  • Kotlin Coroutines & Flow

对于其他语言,如RxJS, RxPHP等,对应语言的SDK都有支持。

序列化框架支持

Alibaba RSocket Broker主要支持以下主流序列化框架,同时还支持自定义的序列化框架支持。

  • Hessian
  • JSON
  • Protobuf
  • Avro
  • Cbor
  • Java object serialization
  • ByteBuffer支持: 如图片传输、数据分析场景,之间传递原生字节流

Java生态支持

  • Spring Boot集成:通过alibaba-rsocket-spring-boot-starter快速接入RSocket Broker,兼容Spring RSocket和Spring Cloud RSocket等
  • Spring Boot Actuator支持: 快速了解RSocket接入和通讯情况,支持RSocket Broker的健康度检查
  • Spring Cloud Discovery支持: RSocket Broker可以作为服务注册发现服务器
  • ESB(企业服务总线)对接支持: Spring Integration, Apache Camel

其他协议接入

RSocket和其他协议之间的互操作主要是通过Gateway的方式完成的,目前主要支持:

  • HTTP: 通过HTTP REST API方式访问RSocket服务,由RSocket HTTP Gateway提供接入支持
  • gRPC: 通过gRPC方式访问RSocket服务,由RSocket gRPC Gateway提供

服务治理

  • 单个服务级别的上下线控制:可以下线某一应用的某一服务接口
  • 单个服务提供者的权重设置: 应用基本的权重支持
  • Metrics支持:完备的Metrics支持,支持应用级别、服务接口级别的Metrics采集
  • Sticky Session支持:支持点对点通讯粘连特性,相关的服务接口调用只会发生在某一服务提供者节点上,如数据解析场景、顺序调用等业务场景

集群管理

目前Alibaba RSocket Broker主要是三者集群管理方式:

  • Standalone: 单个Broker作集群,适合开发测试
  • Gossip广播: 基于Gossip广播机制的集群管理,适合各种网络环境,也非常稳定,测试和产品环境均可使用
  • Kubernetes: 适合基础架构为Kubernetes的场景,采用Helm部署,应用对接也非常简单

此外RSocket Broker提供完备的Web控制台。

安全

  • 支持应用JWT接入支持,验证算法为RS256
  • 支持RSocket的TLS加密,支持TLS 1.3和1.2两个版本
  • 支持多租户设计,租户之间可以安全隔离,同时支持多租户之间的服务白名单通讯