Ian& Wangxin & Kirito: I think we should consider that it's time to separate dubbo-cluster project into some subprojects such as loadbalance\router and so on after moving them to dubbo repo.
KimmKing([email protected]) == In me the tiger sniffs the rose. == From: Ian Luo Date: 2018-08-18 00:32 To: dev Subject: Re: [Dubbo- support tag router feature] Add a new Router implement -- TagRouter very nice feature the community keeps asking, I will look into it. On Fri, Aug 17, 2018 at 2:45 PM 徐靖峰 <[email protected]> wrote: > this topic is related to > https://github.com/apache/incubator-dubbo/pull/2228 > > What is the purpose of the change > > Support tag router feature for dubbo. > > some pain points > > > > fact1: some applications changed at the same time in different branch,like > A,B,C. > > fact2: some applications didn't change ,but deploy repeatedly,like D,E. > > fact3: if a new feature need to be tested, all 5 application need to be > deployed. > > fact4: isolation by feature is not friendly to parallel development. > > use tag > > > > fact: changed applications are incremental deployment > > some cases > > > > usage > > consumer > RpcContext.getContext().setAttachment("request.tag","red"); > i suggest you can use filter or SPI to set this attachment, notice that > RpcContext is bound to Thread. > > provider > @Bean public ApplicationConfig applicationConfig() { > ApplicationConfig applicationConfig = new ApplicationConfig(); > applicationConfig.setName("provider-book"); // instruct tag > router Map<String,String> parameters = new HashMap<>(); > parameters.put(Constants.ROUTER_KEY, "tag"); > applicationConfig.setParameters(parameters); return > applicationConfig; } > Brief changelog > > add unit property for dubbo.xsd. > > add TagRouter,TagRouterFactory. > > add SPI statement for adding TagRouter automatically. > > fix a small bug(may be not) in > org.apache.dubbo.registry.integration.RegistryDirectory#route,exclude > runtime routers, avoid to filter some runtime invokers. > > Verifying this change > > Here is more detail about Unit Test: > org.apache.dubbo.rpc.cluster.router.tag.TagRouterTest > I have verified that the unit test has been correct and passed. > > Here is more detail about a Integration Test: > clone the repository > https://github.com/lexburner/Dubbo-Sample-TagRouter.git,can see the route > tag feature. > > Follow this checklist to help us incorporate your contribution quickly and > easily: > > Make sure there is a GITHUB_issue filed for the change (usually before > you start working on it). Trivial changes like typos do not require a > GITHUB issue. Your pull request should address just this issue, without > pulling in other changes - one PR resolves one issue. > > Format the pull request title like [Dubbo-XXX] Fix UnknownException when > host config not exist #XXX. Each commit in the pull request should have a > meaningful subject line and body. > > Write a pull request description that is detailed enough to understand > what the pull request does, how, and why. > > Write necessary unit-test to verify your logic correction, more mock a > little better when cross module dependency exist. If the new feature or > significant change is committed, please remember to add integration-test in > test module. > > Run mvn clean install -DskipTests & mvn clean test-compile > failsafe:integration-test to make sure unit-test and integration-test pass. > > If this contribution is large, please follow the Software Donation Guide.
