Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

RSocket Services

linux_china edited this page Nov 19, 2020 · 3 revisions

RSocket Broker的服务管理方式采用的是微内核设计,核心组件为Broker,而服务都是以外部进程方式注册到Broker上,且采取异步化通讯的方式。 Broker主要涉及服务的生命周期、状态维护、路由管理和数据采集等工作,当需要扩展服务时,我们只需要编写外部服务注册到Broker即可,架构图如下:

RSocket Broker MicroKernel

项目开发中,会涉及到非常多服务,但是一些服务非常重要,这里列举一下,架构设计比较方便:

  • 通讯类: 邮件、短信和IM通知等
  • Auth: RSocket Broker内置,JWT + ACL
  • Config: ConfigurationService内置,Secret需要独立支持
  • Registry: 已经内置服务注册
  • Pub/Sub: 消息推送服务,可以通过外部服务整合Kafka
  • Events: CloudEvents内置
  • Store: 服务整合,如Redis
  • File Store: 文件存储,如OSS, S3
  • Cache: 缓存服务
  • HTTP Proxy: 访问HTTP服务提供代理服务
  • Cloud Service Proxy: 对接外部云服务,更方便内部系统调用,且安全性也比较高

这里要注意一下: 考虑到多语言的接入,服务接口一定要考虑多语言支持的问题,如必须支持Json数据格式,这样可以确保多语言接入。

关于更多的Reactive服务规范草案,请参考: https://github.com/alibaba-rsocket-broker/reactive-service-specification-proposals

RSocket

Network Protocol

  • Binary: byte stream
  • Async message
  • Multi transports
  • Reactive Semantics

Symmetric interactions

  • request/response
  • request/stream
  • fire-and-forget
  • channel

Transports

  • TCP+TLS
  • WebSocket+TLS
  • UDP(Aeron)
  • RDMA

Polyglot

Clone this wiki locally