Overview

更新时间:
复制 MD 格式

SOFARPC enables peer-to-peer service calls between applications.

Product features

  • High availability

    SOFARPC provides software load balancing. It functions as a scheduler for peer-to-peer service calls and helps service consumers select a suitable service provider to run their business logic.

  • High fault tolerance

    Software load balancing and a configuration center manage fault tolerance for all service calls. This allows service consumers to transparently select healthy providers, ensuring the stability of the entire system.

Basic features

The main features are as follows:

  • Multiple service routing methods: Supports software load balancing, hardware load balancing, and direct connections.

  • Load balancing: Supports policies such as random, persistent connection-aware, and weighted.

  • Multiple invocation methods: Supports synchronous, one-way, callback, and generalization calls.

  • Multiple programming interfaces: Supports XML, dynamic clients, and Standalone mode.

  • Traffic forwarding: Supports traffic forwarding between applications.

  • Tracing Analysis: Supports tracing calls from applications outside the grid to applications inside the grid to create a complete trace.

  • Trace data pass-through: Supports storing data in the application invocation context. This allows applications across the entire trace to access and manipulate the data.

  • Fault removal: Automatically monitors RPC calls and currently supports the bolt protocol.

Protocol support

SOFARPC supports various communication protocols, including the following:

  • BOLT: An open source network communication framework developed by Ant Group based on Netty.

  • RESTful: An architectural style based on HTTP.

  • Dubbo: An open source distributed service framework.

  • H2C: An open network communication framework.

How it works

In SOFARPC, remote calls are defined by a service model that specifies the two parties involved in a service call. This model defines two roles:

  • Service consumer: The party that initiates the RPC call. It is the client that calls the service and is also known as a "Reference".

  • Service provider: The party that receives the RPC call. It is the server that provides the service and is also known as a "Service".

How SOFARPC works

Schematic diagram

The principle is as follows:

  1. Register service: When a SOFARPC application starts, it publishes its RPC services to the service registry. In the diagram, this is represented by the arrow from Service to SOFARegistry.

  2. Subscribe service: When a SOFARPC application that references a service starts, it subscribes to the metadata for that service from the service registry.

  3. Notify service: After the service registry receives a subscription request, it pushes the list of publisher metadata to the service consumer in real time. In the diagram, this is represented by the arrow from Registry to Reference.

  4. Invoke: After the service consumer receives the provider addresses, it selects one and initiates a call. In the diagram, this is represented by the arrow from Reference to Service.