apache / apache/incubator-seata
Introduce Metadata-based Service Registration, Routing and Load Balancing for Seata
- 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
Assessment
This issue has not been assessed yet.