apache / apache/dubbo

Dynamic Routing Expansion

Open
#11,297 2 comments 0 reactions 0 assignees View on GitHub
type/proposal
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [ ] I have searched the [release notes](https://github.com/apache/dubbo/releases) of this repository and believe that this is not a duplicate.

## Describe the feature
ConditionRouter only supports a few operators which cannot satisfy real usage in production.
Now canary deployment is popular in micro services and Dubbo should have a native solution.

Users can specify the rules in config center such like following:
when c.version==1.1 then s.version>=2.0
when c.version<1.1 then s.version<2.0
c is an embeded object which means client/consumer, s means server/provider
As soon as the rules are deployed, it will be applied into the consumer side and changes the router.
More complicated expressions, please refer to [Apache Commons JEXL](https://commons.apache.org/proper/commons-jexl/)
This expression language can be easily changed to Spring Expression Language(SpEL). But consider that dubbo is now and apache project, ```commons-jexl``` will be used as the default one.

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.