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.

Reply via email to