blob: 8ff4d5e07ec3fb52d63245de216076cfee7fd990 [file] [log] [blame]
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo – Traffic Management</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/</link><description>Recent content in Traffic Management on Apache Dubbo</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://dubbo.apache.org/en/overview/tasks/traffic-management/index.xml" rel="self" type="application/rss+xml"/><item><title>Overview: Adjust traffic distribution by weight</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/weight/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/weight/</guid><description>
&lt;p>Dubbo provides the service governance capability of adjusting traffic distribution by weight, and can dynamically adjust traffic distribution by weight without restarting the application.&lt;/p>
&lt;p>Dubbo can adjust traffic distribution by weight through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>In the case of different machine performance, the load of different machines needs to be evaluated systematically, and some machines need to be downgraded. By adjusting the traffic ratio of the machine by weight, the performance of the machine can be reasonably evaluated.
Certain services will face traffic shocks. In order to ensure the availability of core services, some services need to be downgraded. Adjust traffic distribution by weight to avoid faults caused by traffic impact.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="weight-adjustment">Weight Adjustment&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation bar, select Service Governance &amp;gt; Weight Adjustment.&lt;/li>
&lt;li>Click the Create button, and in the New Weight Rule panel, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;p>&lt;strong>For the scenario of dynamically adjusting traffic distribution through weight, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Whether you want to modify the configuration of the entire application or a service.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;li>Service: &lt;code>scope: service, key:group+service+version&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the address list configuration takes effect only for some specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The weight to modify.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the weight configuration to trigger the call verification.&lt;/p></description></item><item><title>Overview: Dynamic adjustment of service timeout</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/timeout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/timeout/</guid><description>
&lt;p>Dubbo provides the service governance capability of dynamically adjusting the timeout period, which can dynamically adjust the service timeout period without restarting the application.&lt;/p>
&lt;p>Dubbo can dynamically adjust the timeout time through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>Various timeout configurations are encountered in daily work. After the business logic is changed, the existing call relationship may need to be adjusted continuously with the development of the business, and the change of the response time of the corresponding service interface may not be determined until it goes online. Dubbo-Admin provides a dynamic timeout configuration capability, which can help you quickly and dynamically adjust the interface timeout time to improve service availability.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="dynamic-configuration">Dynamic configuration&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Dynamic Configuration.&lt;/li>
&lt;li>Click the Create button, fill in the rule content in the create dynamic configuration panel, and click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">configVersion&lt;/span>: v2.7
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">scope&lt;/span>: application/service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">key&lt;/span>: app-name/group+service+version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">configs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;0.0.0.0&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">providerAddresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;1.1.1.1:20880&amp;#34;&lt;/span>, &lt;span style="color:#2aa198">&amp;#34;2.2.2.2:20881&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">side&lt;/span>: consumer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">applications/services&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">parameters&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">timeout&lt;/span>: &lt;span style="color:#2aa198">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">loadbalance&lt;/span>: random
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;0.0.0.0:20880&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">side&lt;/span>: provider
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">applications/services&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">parameters&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">threadpool&lt;/span>: fixed
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">threads&lt;/span>: &lt;span style="color:#2aa198">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">iothreads&lt;/span>: &lt;span style="color:#2aa198">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">dispatcher&lt;/span>: all
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">weight&lt;/span>: &lt;span style="color:#2aa198">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For the scenario of dynamically adjusting the timeout time, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Whether you want to modify the configuration of the entire application or a service.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;li>Service: &lt;code>scope: service, key:group+service+version&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the modification is applied to the consumer or the provider.
&lt;ul>
&lt;li>Consumer: &lt;code>side: consumer&lt;/code>, when acting on the consumer side, you can further use &lt;code>providerAddress&lt;/code>, &lt;code>applications&lt;/code> to select a specific provider example or application, if you configure the consumer and provider at the same time, the consumer will override provider.&lt;/li>
&lt;li>Provider: &lt;code>side: provider&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The timeout period to be modified.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the timeout configuration to trigger the call verification.&lt;/p></description></item><item><title>Overview: Request Routing</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-routing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-routing/</guid><description>
&lt;p>Dubbo provides the service governance capability of dynamically creating conditional routing, which can route according to the request initiator and method without restarting the application.&lt;/p>
&lt;p>Dubbo can implement dynamic routing according to request conditions through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>In business scenarios such as black and white lists, excluding pre-release machines, exposing only some machines, and isolation by environment, routing rules are required to filter the target server address before initiating an RPC call, and the filtered address is used as the candidate address for the final RPC call. Dubbo-Admin provides conditional routing capabilities, which can help you configure routing rules to meet business scenarios.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="conditional-routing">Conditional Routing&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Conditional Routing.&lt;/li>
&lt;li>Click the Create button, in the Create New Routing Rule panel, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">scope&lt;/span>: application/service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">force&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">runtime&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">key&lt;/span>: app-name/group+service+version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">conditions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - application=app1 =&amp;gt; address=*:20880
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - method=sayHello =&amp;gt; address=*:20880
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For conditional routing scenarios, you only need to clarify the following questions to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>To modify the configuration of the consumer application or the configuration of a service.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;li>Service: &lt;code>scope: service, key:group+service+version&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>When the routing result is empty, whether to force return.
&lt;ul>
&lt;li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.&lt;/li>
&lt;li>force=true: When the routing result is empty, an exception will be returned directly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Priority of routing rules
&lt;ul>
&lt;li>priority=1: The priority of routing rules, used for sorting, the higher the priority, the higher the execution, it can be left blank, the default is 0.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The condition rule to modify.
&lt;ul>
&lt;li>=&amp;gt; The previous one is the consumer matching condition. All parameters are compared with the consumer’s URL. When the consumer meets the matching condition, the subsequent filtering rules are executed for the consumer.&lt;/li>
&lt;li>=&amp;gt; After that, it is the filter condition of the provider&amp;rsquo;s address list. All parameters are compared with the provider&amp;rsquo;s URL, and consumers only get the filtered address list in the end.&lt;/li>
&lt;li>If the matching condition is empty, it means to apply to all consumers, such as: =&amp;gt; host != 10.20.153.11&lt;/li>
&lt;li>If the filter condition is empty, access is prohibited, such as: host = 10.20.153.10 =&amp;gt;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the conditional routing configuration to trigger the call verification.&lt;/p></description></item><item><title>Overview: Same computer room/area priority</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/zone/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/zone/</guid><description>
&lt;p>Dubbo provides the service management capability of dynamically configuring the priority of the same computer room/region, and can dynamically configure the priority of the same computer room/region without restarting the application.&lt;/p>
&lt;p>Dubbo can be configured through XML, annotation configuration, and dynamic configuration in the same computer room/area first. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>When applications are deployed in multiple different computer rooms/regions, cross-region calls will occur between applications, and cross-region calls will increase the response time. Priority in the same computer room/area means that when an application invokes a service, the service provider in the same computer room/area is called first. Dubbo-Admin provides a dynamic same-computer room/region priority capability, which can help you quickly and dynamically configure the same-computer room/region priority, avoiding network delays caused by cross-regions, thereby reducing call response time.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="label-routing">Label Routing&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Label Routing.&lt;/li>
&lt;li>Click the Create button, and in the Create New Tag Rule pane, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">force&lt;/span>: &lt;span style="color:#cb4b16">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">runtime&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">key&lt;/span>: governance-tagrouter-provider
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">tags&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20880&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20881&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For the same computer room/area priority scenario, you only need to clarify the following questions to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>To modify the configuration of the provider application to which the service belongs.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>When the routing result is empty, whether to force return.
&lt;ul>
&lt;li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.&lt;/li>
&lt;li>force=true: When the routing result is empty, an exception will be returned directly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Priority of routing rules
&lt;ul>
&lt;li>priority=1: The priority of routing rules, used for sorting, the higher the priority, the higher the execution, it can be left blank, the default is 0.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The tag name to modify.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the priority configuration of the same computer room/area to trigger the call verification.&lt;/p></description></item><item><title>Overview: Temporarily kick out the problem service instance</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/isolation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/isolation/</guid><description>
&lt;p>Dubbo provides the service management capability of temporarily removing problematic service instances, which can temporarily remove problematic service instances without restarting the application.&lt;/p>
&lt;p>Dubbo can temporarily remove problem service instances through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>When the service is running online, it is inevitable that some nodes have problems. In order not to affect the normal operation of the overall service, the service instance with the problem needs to be temporarily offline. Dubbo-Admin provides the ability to temporarily remove problematic service instances, which can help you temporarily offline problematic service instances without affecting the operation of the overall service.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="dynamic-configuration">Dynamic configuration&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Dynamic Configuration.&lt;/li>
&lt;li>Click the Create button, fill in the rule content in the create dynamic configuration panel, and click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">configVersion&lt;/span>: v2.7
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">scope&lt;/span>: application/service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">key&lt;/span>: app-name/group+service+version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">configs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;0.0.0.0&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">providerAddresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;1.1.1.1:20880&amp;#34;&lt;/span>, &lt;span style="color:#2aa198">&amp;#34;2.2.2.2:20881&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">side&lt;/span>: consumer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">applications/services&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">parameters&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">timeout&lt;/span>: &lt;span style="color:#2aa198">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">loadbalance&lt;/span>: random
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>- &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;0.0.0.0:20880&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">side&lt;/span>: provider
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">applications/services&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">parameters&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">threadpool&lt;/span>: fixed
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">threads&lt;/span>: &lt;span style="color:#2aa198">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">iothreads&lt;/span>: &lt;span style="color:#2aa198">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">dispatcher&lt;/span>: all
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">weight&lt;/span>: &lt;span style="color:#2aa198">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For the scenario of temporarily kicking out problematic service instances, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Whether you want to modify the configuration of the entire application or a service.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;li>Service: &lt;code>scope: service, key:group+service+version&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The modification is applied to the provider side.
&lt;ul>
&lt;li>Provider: &lt;code>side: provider&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The disabled parameter to be modified.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the temporary removal of the problematic service instance configuration to trigger the call verification.&lt;/p></description></item><item><title>Overview: Traffic Grayscale</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/</guid><description>
&lt;p>Dubbo provides traffic grayscale service management capabilities, and can configure label routing rules and conditional routing to achieve grayscale publishing without restarting the application.&lt;/p>
&lt;p>Dubbo can achieve traffic grayscale through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>Scenarios of demand changes and version iterations will be encountered during product development. In order to take into account both demand changes and system stability, the release should be as smooth as possible, and the number of affected people should be small to large, and roll back immediately if there is a problem. Dubbo-Admin provides dynamic traffic grayscale capabilities, which can help you bid for new services, release services smoothly, and improve service stability and availability.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="conditional-routing">Conditional Routing&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Conditional Routing.&lt;/li>
&lt;li>Click the Create button, in the Create New Routing Rule panel, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">scope&lt;/span>: application/service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">force&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">runtime&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">key&lt;/span>: app-name/group+service+version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">conditions&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - application=app1 =&amp;gt; address=*:20880
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - method=sayHello =&amp;gt; address=*:20880
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For traffic grayscale scenarios, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>To modify the configuration of the consumer application or the configuration of a service.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;li>Service: &lt;code>scope: service, key:group+service+version&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>When the routing result is empty, whether to force return.
&lt;ul>
&lt;li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.&lt;/li>
&lt;li>force=true: When the routing result is empty, an exception will be returned directly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Priority of routing rules
&lt;ul>
&lt;li>priority=1: The priority of routing rules, used for sorting, the higher the priority, the higher the execution, it can be left blank, the default is 0.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The condition rule to modify.
&lt;ul>
&lt;li>=&amp;gt; The previous one is the consumer matching condition. All parameters are compared with the consumer’s URL. When the consumer meets the matching condition, the subsequent filtering rules are executed for the consumer.&lt;/li>
&lt;li>=&amp;gt; After that, it is the filter condition of the provider&amp;rsquo;s address list. All parameters are compared with the provider&amp;rsquo;s URL, and consumers only get the filtered address list in the end.&lt;/li>
&lt;li>If the matching condition is empty, it means to apply to all consumers, such as: =&amp;gt; host != 10.20.153.11&lt;/li>
&lt;li>If the filter condition is empty, access is prohibited, such as: host = 10.20.153.10 =&amp;gt;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="label-routing">Label Routing&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Label Routing.&lt;/li>
&lt;li>Click the Create button, and in the Create New Tag Rule pane, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules-1">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template-1">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">force&lt;/span>: &lt;span style="color:#cb4b16">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">runtime&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">key&lt;/span>: governance-tagrouter-provider
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">tags&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20880&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20881&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For traffic grayscale scenarios, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>To modify the configuration of the provider application to which the service belongs.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>When the routing result is empty, whether to force return.
&lt;ul>
&lt;li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.&lt;/li>
&lt;li>force=true: When the routing result is empty, an exception will be returned directly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Priority of routing rules
&lt;ul>
&lt;li>priority=1: The priority of routing rules, used for sorting, the higher the priority, the higher the execution, it can be left blank, the default is 0.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The tag name to modify.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to traffic grayscale configuration to trigger the call verification.&lt;/p></description></item><item><title>Overview: Traffic Isolation</title><link>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-condition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-condition/</guid><description>
&lt;p>Dubbo provides the service management capability of dynamic traffic isolation, which can dynamically isolate traffic without restarting the application.&lt;/p>
&lt;p>Dubbo can implement traffic isolation through XML configuration, annotation configuration, and dynamic configuration. Here we mainly introduce the dynamic configuration method. For other configuration methods, please refer to the old document &lt;a href="https://dubbo.apache.org/zh-cn/docsv2.7/user/configuration/">Configuration&lt;/a>&lt;/p>
&lt;h2 id="before-the-start">before the start&lt;/h2>
&lt;p>Please make sure to run Dubbo-Admin successfully&lt;/p>
&lt;h2 id="background-information">Background Information&lt;/h2>
&lt;p>If multiple versions of an application run simultaneously online and are deployed in different environments, such as daily environments and special environments, you can use label routing to isolate the traffic of different versions in different environments, and the order traffic of flash sales or orders from different channels Routing to special environments, routing normal traffic to everyday environments. Even if the special environment is abnormal, the traffic that should have entered the special environment will not enter the daily environment, and will not affect the use of the daily environment.&lt;/p>
&lt;h2 id="steps">Steps&lt;/h2>
&lt;h3 id="label-routing">Label Routing&lt;/h3>
&lt;ol>
&lt;li>Log in to the Dubbo-Admin console&lt;/li>
&lt;li>In the left navigation pane, select Service Governance &amp;gt; Label Routing.&lt;/li>
&lt;li>Click the Create button, and in the Create New Tag Rule pane, fill in the rule content, and then click Save.&lt;/li>
&lt;/ol>
&lt;h4 id="detailed-rules">Detailed Rules&lt;/h4>
&lt;h5 id="configuration-template">Configuration template&lt;/h5>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">force&lt;/span>: &lt;span style="color:#cb4b16">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">runtime&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">enabled&lt;/span>: &lt;span style="color:#cb4b16">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">key&lt;/span>: governance-tagrouter-provider
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">tags&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20880&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#268bd2">name&lt;/span>: tag2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">addresses&lt;/span>: [&lt;span style="color:#2aa198">&amp;#34;127.0.0.1:20881&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>For the traffic isolation scenario, you only need to clarify the following issues to know how to write the configuration:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>To modify the configuration of the provider application to which the service belongs.
&lt;ul>
&lt;li>Application: &lt;code>scope: application, key: app-name&lt;/code> (you can also use &lt;code>services&lt;/code> to specify certain services).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>When the routing result is empty, whether to force return.
&lt;ul>
&lt;li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.&lt;/li>
&lt;li>force=true: When the routing result is empty, an exception will be returned directly.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Priority of routing rules
&lt;ul>
&lt;li>priority=1: The priority of routing rules, used for sorting, the higher the priority, the higher the execution, it can be left blank, the default is 0.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Whether the configuration takes effect only for certain specific instances.
&lt;ul>
&lt;li>All instances: &lt;code>addresses: [&amp;quot;0.0.0.0&amp;quot;]&lt;/code> or &lt;code>addresses: [&amp;quot;0.0.0.0:*&amp;quot;]&lt;/code> depends on the side value.&lt;/li>
&lt;li>Specified instances: &lt;code>addersses[list of instance addresses]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The tag name to modify.&lt;/li>
&lt;/ol>
&lt;h2 id="result-validation">Result validation&lt;/h2>
&lt;p>Select the application related to the traffic isolation configuration to trigger the call verification.&lt;/p></description></item></channel></rss>