DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Mastering Multi-Cloud and Edge Data Synchronization: A Retail Use Case With KubeMQ’s Java SDK
  • Reshaping the Cloud To Meet Modern Workloads
  • How I Used Render To Scale My Microservices App With Ease
  • Applying Kappa Architecture to Make Data Available Where It Matters

Trending

  • Java in a Container: Efficient Development and Deployment With Docker
  • Improving Java Application Reliability with Dynatrace AI Engine
  • Dear Micromanager: Your Distrust Has a Job; It’s Just Not the One You’re Doing
  • AI Agents in Java: Architecting Intelligent Health Data Systems
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. RSocket Broker Use Case in Alibaba Cloud

RSocket Broker Use Case in Alibaba Cloud

Find out more about RSocket through an explanation of Alibaba Cloud FaaS offering and a description of the system architecture.

By 
Andy Shi user avatar
Andy Shi
·
Updated Nov. 29, 19 · Analysis
Likes (0)
Comment
Save
Tweet
Share
3.7K Views

Join the DZone community and get the full member experience.

Join For Free

an outlet on the wall

Find out more about RSocket.

Alibaba Cloud FaaS Offering

The Alibaba Cloud FaaS offering is part of Alibaba Cloud Service Engine on Alibaba cloud.

The functions are written in Node.js and they can consume various backend services, including java applications, data stores or messaging systems. This offering is more complicated than some other FaaS offerings where each service is standalone and isolated.

To achieve that, a resilient and powerful event-driven architecture is needed.

RSocket Broker

RSocket is an application protocol carrying reactive streams semantics. Being reactive brings high performance and resiliency to the system.

RSocket is used as the backbone communication protocol. Each component, including the Nodejs services, the backend services, and all the infrastructure pieces in the architecture will communicate via RSocket.

RSocket broker facilitates communication between different components of the FaaS platform. By using the broker deployment model, the components are decoupled from each other yet can have then using HTTP.

Other than communication, the RSocket broker can perform many management functionalities.

Since the RSocket protocol is connection-oriented, the broker keeps the session of the connections. It can serve as a service registry/discovery store. It can perform routing and load balancing. It can perform a health check.

The RSocket broker can also be used to perform traffic shaping, circuit breaking, etc. And since RSocket is a binary protocol, the broker only needs to look at the binary header of the frame to achieve all these features. It can achieve zero-copy.

System Architecture

This is the architecture diagram of the system:

map of Gateways

A system diagram.

The Gateways respond to triggering events from users. Proxies are installed in front of backend services. They both can translate the traffic from and to RSocket from their original protocol.

The Node functions talk to RSocket broker directly using RSocket protocol.

The broker's cluster has several brokers. They are independent of each other and do not exchange routing information (for now).

All the gateways, functions and proxies communicate with each other via RSocket broker in RSocket protocol.

System Performance

With the current deployment, we can achieve peak QPS at 62k/sec, with the daily average invocation of 27 million.

RSocket broker has proven to be reliable and high performance.


Further Reading

RSocket vs. gRPC Benchmark

Reactive Service-to-Service Communication With RSocket (Part 1)

RSocket With Spring Boot + JS: Zero to Hero

RSocket Alibaba Cloud Cloud Use case Spring Framework

Opinions expressed by DZone contributors are their own.

Related

  • Mastering Multi-Cloud and Edge Data Synchronization: A Retail Use Case With KubeMQ’s Java SDK
  • Reshaping the Cloud To Meet Modern Workloads
  • How I Used Render To Scale My Microservices App With Ease
  • Applying Kappa Architecture to Make Data Available Where It Matters

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook