apache / apache/incubator-seata

Introduce Metadata-based Service Registration, Routing and Load Balancing for Seata

Open
#7,886 0 comments 2 reactions 1 assignee Claimed by @YoWuwuuuw View on GitHub
type: feature
Dominant language
Java
Stars
26k
Forks
8.8k
Avg merge
1d 8h
Merged PRs (30d)
4

Description

### Check Ahead

- [x] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate.

- [x] I am willing to try to implement this feature myself.

### Why you need it?

In the existing Seata service registration and discovery system:

+ There is a **lack of differentiation information between server instances,** limiting clients to random/round-robin load balancing based on IP and port.

+ It cannot support:

- Metadata-based load balancing strategies such as weighted random.

- Region/data center routing, version, capability, and environment isolation, and more granular canary and evolution strategies.

### How it could be?

Introduce a **metadata-based service registration and discovery mechanism**:

+ Metadata-aware **load balancing capabilities**

+ Configurable and composable **routing filtering mechanism**

While maintaining **full compatibility with existing registration and discovery behavior**, it provides Seata with higher-level service governance capabilities.

### Other related information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.