Skip to content

Commit

Permalink
修改规则
Browse files Browse the repository at this point in the history
  • Loading branch information
HaojunRen committed Jan 3, 2020
1 parent 7838892 commit d7caada
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 20 deletions.
21 changes: 15 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ XML示例(Json示例见discovery-springcloud-example-service下的rule.json)
</weight>
</discovery>

<!-- 基于Http Header传递的策略路由,全局缺省路由 -->
<!-- 基于Http Header传递的策略路由,全局缺省路由(第三优先级) -->
<strategy>
<!-- 版本路由 -->
<version>{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</version>
Expand All @@ -732,15 +732,24 @@ XML示例(Json示例见discovery-springcloud-example-service下的rule.json)

<!-- 基于Http Header传递的策略路由,客户定制化控制,跟业务参数绑定。如果不命中,则执行上面的全局缺省路由 -->
<strategy-customization>
<!-- 全链路条件命中(第一优先级) -->
<conditions>
<condition id="1" header="a=1;b=2" version-id="a" region-id="b" address-id="c" version-weight-id="d" region-weight-id="e"/>
<condition id="2" header="c=3" version-id="a" region-id="b"/>
<condition id="1" header="a=1;b=2" version-id="a-1" region-id="b-1" address-id="c-1" version-weight-id="d" region-weight-id="e"/>
<condition id="2" header="c=3" version-id="a-2" region-id="b-2"/>
</conditions>

<weights>
<weight id="1" version-id="a-1=10;a-2=90" region-id="b-1=20;b-2=80" address-id="c-1=20;c-2=80"/>
</weights>

<!-- 全链路随机权重(第二优先级) -->
<routes>
<route id="a" type="version">{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</route>
<route id="b" type="region">{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</route>
<route id="c" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</route>
<route id="a-1" type="version">{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</route>
<route id="a-2" type="version">{"discovery-springcloud-example-a":"1.1", "discovery-springcloud-example-b":"1.1", "discovery-springcloud-example-c":"1.2"}</route>
<route id="b-1" type="region">{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</route>
<route id="b-2" type="region">{"discovery-springcloud-example-a":"qa", "discovery-springcloud-example-b":"qa", "discovery-springcloud-example-c":"qa"}</route>
<route id="c-1" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</route>
<route id="c-2" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1101", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1301"}</route>
<route id="d" type="version-weight">{"discovery-springcloud-example-a":"1.0=90;1.1=10", "discovery-springcloud-example-b":"1.0=90;1.1=10", "discovery-springcloud-example-c":"1.0=90;1.1=10"}</route>
<route id="e" type="region-weight">{"discovery-springcloud-example-a":"dev=85;qa=15", "discovery-springcloud-example-b":"dev=85;qa=15", "discovery-springcloud-example-c":"dev=85;qa=15"}</route>
</routes>
Expand Down
54 changes: 46 additions & 8 deletions discovery-springcloud-example-service/src/main/resources/rule.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,9 @@
"a": "1",
"b": "2"
},
"versionId": "a",
"regionId": "b",
"addressId": "c",
"versionId": "a-1",
"regionId": "b-1",
"addressId": "c-1",
"versionWeightId": "d",
"regionWeightId": "e"
},
Expand All @@ -218,29 +218,67 @@
"headerMap": {
"c": "3"
},
"versionId": "a",
"regionId": "b",
"versionId": "a-2",
"regionId": "b-2",
"addressId": null,
"versionWeightId": null,
"regionWeightId": null
}
],
"strategyWeightEntityList": [
{
"id": "1",
"versionMapWeightEntity": {
"weightMap": {
"a-1": 10,
"a-2": 90
}
},
"regionMapWeightEntity": {
"weightMap": {
"b-1": 20,
"b-2": 80
}
},
"addressMapWeightEntity": {
"weightMap": {
"c-1": 20,
"c-2": 80
}
}
}
],
"strategyRouteEntityList": [
{
"id": "a",
"id": "a-1",
"type": "VERSION",
"value": "{\"discovery-springcloud-example-a\":\"1.0\", \"discovery-springcloud-example-b\":\"1.0\", \"discovery-springcloud-example-c\":\"1.0;1.2\"}"
},
{
"id": "b",
"id": "a-2",
"type": "VERSION",
"value": "{\"discovery-springcloud-example-a\":\"1.1\", \"discovery-springcloud-example-b\":\"1.1\", \"discovery-springcloud-example-c\":\"1.2\"}"
},
{
"id": "b-1",
"type": "REGION",
"value": "{\"discovery-springcloud-example-a\":\"qa;dev\", \"discovery-springcloud-example-b\":\"dev\", \"discovery-springcloud-example-c\":\"qa\"}"
},
{
"id": "c",
"id": "b-2",
"type": "REGION",
"value": "{\"discovery-springcloud-example-a\":\"qa\", \"discovery-springcloud-example-b\":\"qa\", \"discovery-springcloud-example-c\":\"qa\"}"
},
{
"id": "c-1",
"type": "ADDRESS",
"value": "{\"discovery-springcloud-example-a\":\"192.168.43.101:1100\", \"discovery-springcloud-example-b\":\"192.168.43.101:1201\", \"discovery-springcloud-example-c\":\"192.168.43.101:1300\"}"
},
{
"id": "c-2",
"type": "ADDRESS",
"value": "{\"discovery-springcloud-example-a\":\"192.168.43.101:1101\", \"discovery-springcloud-example-b\":\"192.168.43.101:1201\", \"discovery-springcloud-example-c\":\"192.168.43.101:1301\"}"
},
{
"id": "d",
"type": "VERSION_WEIGHT",
Expand Down
21 changes: 15 additions & 6 deletions discovery-springcloud-example-service/src/main/resources/rule.xml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
</weight>
</discovery>

<!-- 基于Http Header传递的策略路由,全局缺省路由 -->
<!-- 基于Http Header传递的策略路由,全局缺省路由(第三优先级) -->
<strategy>
<!-- 版本路由 -->
<version>{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</version>
Expand All @@ -157,15 +157,24 @@

<!-- 基于Http Header传递的策略路由,客户定制化控制,跟业务参数绑定。如果不命中,则执行上面的全局缺省路由 -->
<strategy-customization>
<!-- 全链路条件命中(第一优先级) -->
<conditions>
<condition id="1" header="a=1;b=2" version-id="a" region-id="b" address-id="c" version-weight-id="d" region-weight-id="e"/>
<condition id="2" header="c=3" version-id="a" region-id="b"/>
<condition id="1" header="a=1;b=2" version-id="a-1" region-id="b-1" address-id="c-1" version-weight-id="d" region-weight-id="e"/>
<condition id="2" header="c=3" version-id="a-2" region-id="b-2"/>
</conditions>

<weights>
<weight id="1" version-id="a-1=10;a-2=90" region-id="b-1=20;b-2=80" address-id="c-1=20;c-2=80"/>
</weights>

<!-- 全链路随机权重(第二优先级) -->
<routes>
<route id="a" type="version">{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</route>
<route id="b" type="region">{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</route>
<route id="c" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</route>
<route id="a-1" type="version">{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</route>
<route id="a-2" type="version">{"discovery-springcloud-example-a":"1.1", "discovery-springcloud-example-b":"1.1", "discovery-springcloud-example-c":"1.2"}</route>
<route id="b-1" type="region">{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</route>
<route id="b-2" type="region">{"discovery-springcloud-example-a":"qa", "discovery-springcloud-example-b":"qa", "discovery-springcloud-example-c":"qa"}</route>
<route id="c-1" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</route>
<route id="c-2" type="address">{"discovery-springcloud-example-a":"192.168.43.101:1101", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1301"}</route>
<route id="d" type="version-weight">{"discovery-springcloud-example-a":"1.0=90;1.1=10", "discovery-springcloud-example-b":"1.0=90;1.1=10", "discovery-springcloud-example-c":"1.0=90;1.1=10"}</route>
<route id="e" type="region-weight">{"discovery-springcloud-example-a":"dev=85;qa=15", "discovery-springcloud-example-b":"dev=85;qa=15", "discovery-springcloud-example-c":"dev=85;qa=15"}</route>
</routes>
Expand Down

0 comments on commit d7caada

Please sign in to comment.