apache / incubator-seata

:fire: Seata is an easy-to-use, high-performance, open source distributed transaction solution.
https://seata.apache.org/
Apache License 2.0
25.08k stars 8.73k forks source link

Seata Multi-Client Optimization #6614

Open slievrly opened 2 weeks ago

slievrly commented 2 weeks ago

Background:

At present, the practice of Seata framework is mainly based on the single client mode. In this mode, service discovery, serialization, compression and other functions exist in the form of singletons, providing global unique configuration management capabilities. However, with the development of business and the isolation requirements of Seata's own unit tests and benchmarks, the modification of global singleton configuration will affect the stability and controllability of the entire system. Therefore, it is imperative to improve Seata's multi-client capabilities so as to support the configuration management of multiple independent Client instances without affecting the global situation.

Task

In order to improve Seata's multi-client capabilities, we need to carry out the following work:

  1. Multi-Client API design
  1. Design an independent configuration management module so that each Client instance can have its own independent configuration space.

    • Ensure that the new multi-client configuration mechanism is compatible with the existing singleton configuration to avoid affecting the current system using the singleton mode.
  2. Unit test and integration test repair

    • Write and repair related unit tests
    • Verify the isolation and stability of the multi-client mode to ensure that it is compatible with the existing system and provides reliable multi-client support.

Difficulty

Medium

Mentor

Te Wang @wt-better , Apache Seata(incubating) PPMC member


背景:

目前,Seata 框架的实践主要基于单 Client 模式,在这种模式下,服务发现、序列化、压缩等功能都以单例形式存在,提供了全局唯一的配置管理能力。然而,随着业务的发展以及 Seata 自身单元测试和基准测试的隔离性要求,全局单例配置的修改会影响整个系统的稳定性和可控性。因此,提升 Seata 多 Client 能力成为当务之急,以便在不影响全局的情况下,支持多个独立 Client 实例配置管理。

任务

为了实现 Seata 多 Client 能力的提升,我们需要开展以下几个方面的工作:

1、多 Client API 设计

2、设计独立的配置管理模块,使每个 Client 实例可以拥有自己独立的配置空间。

3、单元测试及集成测试修复

难度

导师

王特 @wt-better , Apache Seata(incubating) PPMC member