blob: 6e2c8bd2a134a3feda5901034ed9a6936646b147 [file] [log] [blame]
<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.117.0"><link rel="shortcut icon" type=image/png href=/imgs/favicon.png><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=manifest href=/manifest.webmanifest><title>Traffic Grayscale | Apache Dubbo</title><meta property="og:title" content="Traffic Grayscale"><meta property="og:description" content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2023-02-09T17:22:57+08:00"><meta itemprop=name content="Traffic Grayscale"><meta itemprop=description content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><meta itemprop=dateModified content="2023-02-09T17:22:57+08:00"><meta itemprop=wordCount content="684"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Traffic Grayscale"><meta name=twitter:description content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><script async src="https://www.googletagmanager.com/gtag/js?id=G-1TFHM5YBH0"></script>
<script>var doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-1TFHM5YBH0",{anonymize_ip:!1})}</script><link rel=preload href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css as=style><link href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta name=theme-color content="#326ce5"><link rel=stylesheet href=/css/feature-states.css><meta name=description content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><meta property="og:description" content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><meta name=twitter:description content="Configure label routing rules in Dubbo-Admin to achieve gray scale release"><meta property="og:url" content="https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/"><meta property="og:title" content="Traffic Grayscale"><meta name=twitter:title content="Traffic Grayscale"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script>
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css rel=stylesheet><link href=/css/language.css rel=stylesheet><script src=/js/script.js></script></head><body class="td-page td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a class=navbar-brand href=/en/><span class=navbar-logo></span><span class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class="nav-link active" href=/en/overview/><span class=active>Overview</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/docs3-v2/><span>SDK Manual</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/blog/><span>Blog</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/en/download/><span>Download</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://start.dubbo.apache.org/bootstrap.html target=_blank><span>Initializer</span><i class='fas fa-external-link-alt'></i></a></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>Versions</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/releases>Release Information</a>
<a class=dropdown-item href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Java-3.3</a>
<a class=dropdown-item href=https://v3-2.dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Java-3.2</a>
<a class=dropdown-item href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Go-3.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Nodejs-0.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Web-0.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/>Rust-0.1</a></div></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdownMenuLink role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh-cn/>中文</a></div></li><li class="nav-item dropdown d-lg-block"><div class="nav-item d-none d-lg-block"><div id=docsearch></div></div></li></ul></div></nav><div lang=en id=announcement style='background-color:#3371e3;color:#fff; "background-image: linear-gradient(to right, #073476, #002b76, #022274, #0b1772, #16066e);"'><aside><div class=announcement-main data-nosnippet><h4><img alt=ApacheCon-Asia src=/imgs/contacts/wechat-account.jpg style=float:right;width:10%;height:auto>
<a href=/zh-cn/blog/2023/08/25/coc-asia-2023-大会精彩回顾/>Community over Code Asia 2023</a> highlights!</h4><p>Community Over Code 2023, also known as ApacheCon Asia was successfully held in 18-20 Aug in Beijing!</p></div></aside></div><section class="header-hero text-white pb-0 light-text"></section></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-md-nowrap"><div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><script>$(function(){$("#td-section-nav a").removeClass("active"),$("#td-section-nav #m-enoverviewtaskstraffic-managementtraffic-gray").addClass("active"),$("#td-section-nav #m-enoverviewtaskstraffic-managementtraffic-gray-li span").addClass("td-sidebar-nav-active-item"),$("#td-section-nav #m-enoverviewtaskstraffic-managementtraffic-gray").parents("li").addClass("active-path"),$("#td-section-nav li.active-path").addClass("show"),$("#td-section-nav li.active-path").children("input").prop("checked",!0),$("#td-section-nav #m-enoverviewtaskstraffic-managementtraffic-gray-li").siblings("li").addClass("show"),$("#td-section-nav #m-enoverviewtaskstraffic-managementtraffic-gray-li").children("ul").children("li").addClass("show"),$("#td-sidebar-menu").toggleClass("d-none")})</script><div id=td-sidebar-menu class="td-sidebar__inner d-none"><div id=content-mobile><form class="td-sidebar__search d-flex align-items-center"><div id=docsearch></div><button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav foldable-nav" id=td-section-nav><ul class="td-sidebar-nav__section pr-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverview-li><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewwhat-li><input type=checkbox id=m-enoverviewwhat-check>
<label for=m-enoverviewwhat-check><a href=/en/overview/what/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewwhat><span>What is Dubbo</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewwhatoverview-li><input type=checkbox id=m-enoverviewwhatoverview-check>
<label for=m-enoverviewwhatoverview-check><a href=/en/overview/what/overview/ title="Introduction to Dubbo" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewwhatoverview><span>Introduction</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewwhatdubbo3-li><input type=checkbox id=m-enoverviewwhatdubbo3-check>
<label for=m-enoverviewwhatdubbo3-check><a href=/en/overview/what/dubbo3/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewwhatdubbo3><span>Dubbo 3 Quick Facts</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewwhatarchitecture-li><input type=checkbox id=m-enoverviewwhatarchitecture-check>
<label for=m-enoverviewwhatarchitecture-check><a href=/en/overview/what/architecture/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewwhatarchitecture><span>Architecture</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewwhatextensibility-li><input type=checkbox id=m-enoverviewwhatextensibility-check>
<label for=m-enoverviewwhatextensibility-check><a href=/en/overview/what/extensibility/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewwhatextensibility><span>Extensibility</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewwhatecosystem-li><input type=checkbox id=m-enoverviewwhatecosystem-check>
<label for=m-enoverviewwhatecosystem-check><a href=/en/overview/what/ecosystem/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewwhatecosystem><span>Ecosystem</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewquickstart-li><input type=checkbox id=m-enoverviewquickstart-check>
<label for=m-enoverviewquickstart-check><a href=/en/overview/quickstart/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewquickstart><span>Quick Start</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtasks-li><input type=checkbox id=m-enoverviewtasks-check>
<label for=m-enoverviewtasks-check><a href=/en/overview/tasks/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtasks><span>Tasks</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtaskstraffic-management-li><input type=checkbox id=m-enoverviewtaskstraffic-management-check>
<label for=m-enoverviewtaskstraffic-management-check><a href=/en/overview/tasks/traffic-management/ title="Traffic Management" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtaskstraffic-management><span>Traffic Governance</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementweight-li><input type=checkbox id=m-enoverviewtaskstraffic-managementweight-check>
<label for=m-enoverviewtaskstraffic-managementweight-check><a href=/en/overview/tasks/traffic-management/weight/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementweight><span>Adjust traffic distribution by weight</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementtimeout-li><input type=checkbox id=m-enoverviewtaskstraffic-managementtimeout-check>
<label for=m-enoverviewtaskstraffic-managementtimeout-check><a href=/en/overview/tasks/traffic-management/timeout/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementtimeout><span>Dynamic adjustment of service timeout</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementtraffic-routing-li><input type=checkbox id=m-enoverviewtaskstraffic-managementtraffic-routing-check>
<label for=m-enoverviewtaskstraffic-managementtraffic-routing-check><a href=/en/overview/tasks/traffic-management/traffic-routing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementtraffic-routing><span>Request Routing</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementzone-li><input type=checkbox id=m-enoverviewtaskstraffic-managementzone-check>
<label for=m-enoverviewtaskstraffic-managementzone-check><a href=/en/overview/tasks/traffic-management/zone/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementzone><span>Same computer room/area priority</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementisolation-li><input type=checkbox id=m-enoverviewtaskstraffic-managementisolation-check>
<label for=m-enoverviewtaskstraffic-managementisolation-check><a href=/en/overview/tasks/traffic-management/isolation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementisolation><span>Temporarily kick out the problem service instance</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementtraffic-gray-li><input type=checkbox id=m-enoverviewtaskstraffic-managementtraffic-gray-check>
<label for=m-enoverviewtaskstraffic-managementtraffic-gray-check><a href=/en/overview/tasks/traffic-management/traffic-gray/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementtraffic-gray><span>Traffic Grayscale</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstraffic-managementtraffic-condition-li><input type=checkbox id=m-enoverviewtaskstraffic-managementtraffic-condition-check>
<label for=m-enoverviewtaskstraffic-managementtraffic-condition-check><a href=/en/overview/tasks/traffic-management/traffic-condition/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstraffic-managementtraffic-condition><span>Traffic Isolation</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtaskskubernetes-li><input type=checkbox id=m-enoverviewtaskskubernetes-check>
<label for=m-enoverviewtaskskubernetes-check><a href=/en/overview/tasks/kubernetes/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtaskskubernetes><span>Kubernetes Deployment Solution</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskskubernetesdeploy-on-k8s-li><input type=checkbox id=m-enoverviewtaskskubernetesdeploy-on-k8s-check>
<label for=m-enoverviewtaskskubernetesdeploy-on-k8s-check><a href=/en/overview/tasks/kubernetes/deploy-on-k8s/ title="Deploying to Kubernetes" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskskubernetesdeploy-on-k8s><span>Native K8S Service based on API-SERVER</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtasksmesh-li><input type=checkbox id=m-enoverviewtasksmesh-check>
<label for=m-enoverviewtasksmesh-check><a href=/en/overview/tasks/mesh/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtasksmesh><span>Mesh Deployment Solution</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksmeshdubbo-mesh-li><input type=checkbox id=m-enoverviewtasksmeshdubbo-mesh-check>
<label for=m-enoverviewtasksmeshdubbo-mesh-check><a href=/en/overview/tasks/mesh/dubbo-mesh/ title="Dubbo proxy mesh using Envoy & Istio" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksmeshdubbo-mesh><span>Sidecar mode</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksmeshproxyless-li><input type=checkbox id=m-enoverviewtasksmeshproxyless-check>
<label for=m-enoverviewtasksmeshproxyless-check><a href=/en/overview/tasks/mesh/proxyless/ title="Istio + Proxyless" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksmeshproxyless><span>Proxyless mode</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtaskstriple-li><input type=checkbox id=m-enoverviewtaskstriple-check>
<label for=m-enoverviewtaskstriple-check><a href=/en/overview/tasks/triple/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtaskstriple><span>Triple Usage Example</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstripleidl-li><input type=checkbox id=m-enoverviewtaskstripleidl-check>
<label for=m-enoverviewtaskstripleidl-check><a href=/en/overview/tasks/triple/idl/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstripleidl><span>Using IDL + Protobuf to define services across languages</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstriplewrap-li><input type=checkbox id=m-enoverviewtaskstriplewrap-check>
<label for=m-enoverviewtaskstriplewrap-check><a href=/en/overview/tasks/triple/wrap/ title="Pojo Serialization Compatibility Mode" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstriplewrap><span>Pojo serialization compatibility mode</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtaskstriplestreaming-li><input type=checkbox id=m-enoverviewtaskstriplestreaming-check>
<label for=m-enoverviewtaskstriplestreaming-check><a href=/en/overview/tasks/triple/streaming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtaskstriplestreaming><span>Streaming communication mode</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtasksmigration-li><input type=checkbox id=m-enoverviewtasksmigration-check>
<label for=m-enoverviewtasksmigration-check><a href=/en/overview/tasks/migration/ title="How to smoothly migrate to the new functions of Dubbo3" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtasksmigration><span>Migrate to Dubbo3</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksmigration2to3-li><input type=checkbox id=m-enoverviewtasksmigration2to3-check>
<label for=m-enoverviewtasksmigration2to3-check><a href=/en/overview/tasks/migration/2to3/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksmigration2to3><span>Upgrade to Dubbo3</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksmigrationmigration-triple-li><input type=checkbox id=m-enoverviewtasksmigrationmigration-triple-check>
<label for=m-enoverviewtasksmigrationmigration-triple-check><a href=/en/overview/tasks/migration/migration-triple/ title="Guide to Migrating Dubbo Protocol to Triple Protocol" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksmigrationmigration-triple><span>Triple Protocol</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksmigrationservice-discovery-samples-li><input type=checkbox id=m-enoverviewtasksmigrationservice-discovery-samples-check>
<label for=m-enoverviewtasksmigrationservice-discovery-samples-check><a href=/en/overview/tasks/migration/service-discovery-samples/ title="Dubbo3 application-level service discovery" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksmigrationservice-discovery-samples><span>Application-Level Service Discovery</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewtasksecosystem-li><input type=checkbox id=m-enoverviewtasksecosystem-check>
<label for=m-enoverviewtasksecosystem-check><a href=/en/overview/tasks/ecosystem/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewtasksecosystem><span>Microservice Governance</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksecosystemtransaction-li><input type=checkbox id=m-enoverviewtasksecosystemtransaction-check>
<label for=m-enoverviewtasksecosystemtransaction-check><a href=/en/overview/tasks/ecosystem/transaction/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksecosystemtransaction><span>Transaction Management</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewtasksecosystemrate-limit-li><input type=checkbox id=m-enoverviewtasksecosystemrate-limit-check>
<label for=m-enoverviewtasksecosystemrate-limit-check><a href=/en/overview/tasks/ecosystem/rate-limit/ title="Current Limit Downgrade" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewtasksecosystemrate-limit><span>Current limit downgrade</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewmannual-li><input type=checkbox id=m-enoverviewmannual-check>
<label for=m-enoverviewmannual-check><a href=/en/overview/mannual/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewmannual><span>SDK Manual</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewmannualjava-li><input type=checkbox id=m-enoverviewmannualjava-check>
<label for=m-enoverviewmannualjava-check><a href=/en/docs3-v2/java-sdk/ title="Java SDK" target=_blank rel=noopener class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewmannualjava><span>Java</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewmannualgolang-li><input type=checkbox id=m-enoverviewmannualgolang-check>
<label for=m-enoverviewmannualgolang-check><a href=/en/docs3-v2/golang-sdk/ title="Golang SDK" target=_blank rel=noopener class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewmannualgolang><span>Golang</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewmannualrust-li><input type=checkbox id=m-enoverviewmannualrust-check>
<label for=m-enoverviewmannualrust-check><a href=/en/docs3-v2/rust-sdk/ title="Rust SDK" target=_blank rel=noopener class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewmannualrust><span>Rust</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewcore-features-li><input type=checkbox id=m-enoverviewcore-features-check>
<label for=m-enoverviewcore-features-check><a href=/en/overview/core-features/ title="Core Features" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewcore-features><span>Features</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresservice-definition-li><input type=checkbox id=m-enoverviewcore-featuresservice-definition-check>
<label for=m-enoverviewcore-featuresservice-definition-check><a href=/en/overview/core-features/service-definition/ title="Dubbo 微服务开发" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresservice-definition><span>微服务开发</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresservice-discovery-li><input type=checkbox id=m-enoverviewcore-featuresservice-discovery-check>
<label for=m-enoverviewcore-featuresservice-discovery-check><a href=/en/overview/core-features/service-discovery/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresservice-discovery><span>Service Discovery</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresload-balance-li><input type=checkbox id=m-enoverviewcore-featuresload-balance-check>
<label for=m-enoverviewcore-featuresload-balance-check><a href=/en/overview/core-features/load-balance/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresload-balance><span>负载均衡</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-enoverviewcore-featurestraffic-li><input type=checkbox id=m-enoverviewcore-featurestraffic-check>
<label for=m-enoverviewcore-featurestraffic-check><a href=/en/overview/core-features/traffic/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-enoverviewcore-featurestraffic><span>流量管控</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featurestrafficcondition-rule-li><input type=checkbox id=m-enoverviewcore-featurestrafficcondition-rule-check>
<label for=m-enoverviewcore-featurestrafficcondition-rule-check><a href=/en/overview/core-features/traffic/condition-rule/ title=条件路由规则 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featurestrafficcondition-rule><span>条件路由</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featurestraffictag-rule-li><input type=checkbox id=m-enoverviewcore-featurestraffictag-rule-check>
<label for=m-enoverviewcore-featurestraffictag-rule-check><a href=/en/overview/core-features/traffic/tag-rule/ title=标签路由规则 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featurestraffictag-rule><span>标签路由</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featurestrafficscript-rule-li><input type=checkbox id=m-enoverviewcore-featurestrafficscript-rule-check>
<label for=m-enoverviewcore-featurestrafficscript-rule-check><a href=/en/overview/core-features/traffic/script-rule/ title=脚本路由规则 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featurestrafficscript-rule><span>脚本路由</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featurestrafficconfiguration-rule-li><input type=checkbox id=m-enoverviewcore-featurestrafficconfiguration-rule-check>
<label for=m-enoverviewcore-featurestrafficconfiguration-rule-check><a href=/en/overview/core-features/traffic/configuration-rule/ title=动态配置规则 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featurestrafficconfiguration-rule><span>动态配置</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featurestrafficmesh-rule-li><input type=checkbox id=m-enoverviewcore-featurestrafficmesh-rule-check>
<label for=m-enoverviewcore-featurestrafficmesh-rule-check><a href=/en/overview/core-features/traffic/mesh-rule/ title=基于服务网格的路由规则 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featurestrafficmesh-rule><span>服务网格</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresprotocols-li><input type=checkbox id=m-enoverviewcore-featuresprotocols-check>
<label for=m-enoverviewcore-featuresprotocols-check><a href=/en/overview/core-features/protocols/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresprotocols><span>通信协议</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresextensibility-li><input type=checkbox id=m-enoverviewcore-featuresextensibility-check>
<label for=m-enoverviewcore-featuresextensibility-check><a href=/en/overview/core-features/extensibility/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresextensibility><span>扩展适配</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresobservability-li><input type=checkbox id=m-enoverviewcore-featuresobservability-check>
<label for=m-enoverviewcore-featuresobservability-check><a href=/en/overview/core-features/observability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresobservability><span>观测服务</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuressecurity-li><input type=checkbox id=m-enoverviewcore-featuressecurity-check>
<label for=m-enoverviewcore-featuressecurity-check><a href=/en/overview/core-features/security/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuressecurity><span>认证鉴权</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresservice-mesh-li><input type=checkbox id=m-enoverviewcore-featuresservice-mesh-check>
<label for=m-enoverviewcore-featuresservice-mesh-check><a href=/en/overview/core-features/service-mesh/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresservice-mesh><span>服务网格</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresecosystem-li><input type=checkbox id=m-enoverviewcore-featuresecosystem-check>
<label for=m-enoverviewcore-featuresecosystem-check><a href=/en/overview/core-features/ecosystem/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresecosystem><span>微服务生态</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-enoverviewcore-featuresmore-li><input type=checkbox id=m-enoverviewcore-featuresmore-check>
<label for=m-enoverviewcore-featuresmore-check><a href=/en/overview/core-features/more/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-enoverviewcore-featuresmore><span>更多高级功能</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://dubbo.apache.org/en/overview/>Overview</a></li><li class=breadcrumb-item><a href=https://dubbo.apache.org/en/overview/tasks/>Tasks</a></li><li class=breadcrumb-item><a href=https://dubbo.apache.org/en/overview/tasks/traffic-management/>Traffic Governance</a></li><li class="breadcrumb-item active" aria-current=page><a href=https://dubbo.apache.org/en/overview/tasks/traffic-management/traffic-gray/ aria-disabled=true class="btn-link disabled">Traffic Grayscale</a></li></ol></nav><div class=td-content><h1>Traffic Grayscale</h1><div class=lead>Configure label routing rules in Dubbo-Admin to achieve gray scale release</div><header class=article-meta></header><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.</p><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 <a href=/zh-cn/docsv2.7/user/configuration/>Configuration</a></p><h2 id=before-the-start>before the start</h2><p>Please make sure to run Dubbo-Admin successfully</p><h2 id=background-information>Background Information</h2><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.</p><h2 id=steps>Steps</h2><h3 id=conditional-routing>Conditional Routing</h3><ol><li>Log in to the Dubbo-Admin console</li><li>In the left navigation pane, select Service Governance > Conditional Routing.</li><li>Click the Create button, in the Create New Routing Rule panel, fill in the rule content, and then click Save.</li></ol><h4 id=detailed-rules>Detailed Rules</h4><h5 id=configuration-template>Configuration template</h5><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=display:flex><span>---
</span></span><span style=display:flex><span><span style=color:#268bd2>scope</span>: application/service
</span></span><span style=display:flex><span><span style=color:#268bd2>force</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>runtime</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>key</span>: app-name/group+service+version
</span></span><span style=display:flex><span><span style=color:#268bd2>conditions</span>:
</span></span><span style=display:flex><span> - application=app1 =&gt; address=*:20880
</span></span><span style=display:flex><span> - method=sayHello =&gt; address=*:20880
</span></span></code></pre></div><p><strong>For traffic grayscale scenarios, you only need to clarify the following issues to know how to write the configuration:</strong></p><ol><li>To modify the configuration of the consumer application or the configuration of a service.<ul><li>Application: <code>scope: application, key: app-name</code> (you can also use <code>services</code> to specify certain services).</li><li>Service: <code>scope: service, key:group+service+version</code>.</li></ul></li><li>When the routing result is empty, whether to force return.<ul><li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.</li><li>force=true: When the routing result is empty, an exception will be returned directly.</li></ul></li><li>Priority of routing rules<ul><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.</li></ul></li><li>Whether the configuration takes effect only for certain specific instances.<ul><li>All instances: <code>addresses: ["0.0.0.0"]</code> or <code>addresses: ["0.0.0.0:*"]</code> depends on the side value.</li><li>Specified instances: <code>addersses[list of instance addresses]</code>.</li></ul></li><li>The condition rule to modify.<ul><li>=> 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.</li><li>=> After that, it is the filter condition of the provider&rsquo;s address list. All parameters are compared with the provider&rsquo;s URL, and consumers only get the filtered address list in the end.</li><li>If the matching condition is empty, it means to apply to all consumers, such as: => host != 10.20.153.11</li><li>If the filter condition is empty, access is prohibited, such as: host = 10.20.153.10 =></li></ul></li></ol><h3 id=label-routing>Label Routing</h3><ol><li>Log in to the Dubbo-Admin console</li><li>In the left navigation pane, select Service Governance > Label Routing.</li><li>Click the Create button, and in the Create New Tag Rule pane, fill in the rule content, and then click Save.</li></ol><h4 id=detailed-rules-1>Detailed Rules</h4><h5 id=configuration-template-1>Configuration template</h5><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=display:flex><span>---
</span></span><span style=display:flex><span> <span style=color:#268bd2>force</span>: <span style=color:#cb4b16>false</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>runtime</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>enabled</span>: <span style=color:#cb4b16>true</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>key</span>: governance-tagrouter-provider
</span></span><span style=display:flex><span> <span style=color:#268bd2>tags</span>:
</span></span><span style=display:flex><span> - <span style=color:#268bd2>name</span>: tag1
</span></span><span style=display:flex><span> <span style=color:#268bd2>addresses</span>: [<span style=color:#2aa198>&#34;127.0.0.1:20880&#34;</span>]
</span></span><span style=display:flex><span> - <span style=color:#268bd2>name</span>: tag2
</span></span><span style=display:flex><span> <span style=color:#268bd2>addresses</span>: [<span style=color:#2aa198>&#34;127.0.0.1:20881&#34;</span>]
</span></span><span style=display:flex><span> ...
</span></span></code></pre></div><p><strong>For traffic grayscale scenarios, you only need to clarify the following issues to know how to write the configuration:</strong></p><ol><li>To modify the configuration of the provider application to which the service belongs.<ul><li>Application: <code>scope: application, key: app-name</code> (you can also use <code>services</code> to specify certain services).</li></ul></li><li>When the routing result is empty, whether to force return.<ul><li>force=false: When the routing result is empty, downgrade the provider whose tag is empty.</li><li>force=true: When the routing result is empty, an exception will be returned directly.</li></ul></li><li>Priority of routing rules<ul><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.</li></ul></li><li>Whether the configuration takes effect only for certain specific instances.<ul><li>All instances: <code>addresses: ["0.0.0.0"]</code> or <code>addresses: ["0.0.0.0:*"]</code> depends on the side value.</li><li>Specified instances: <code>addersses[list of instance addresses]</code>.</li></ul></li><li>The tag name to modify.</li></ol><h2 id=result-validation>Result validation</h2><p>Select the application related to traffic grayscale configuration to trigger the call verification.</p><div id=pre-footer><h2>Feedback</h2><p class=feedback--prompt>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--yes">Yes</button>
<button class="btn btn-primary mb-4 feedback--no">No</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled"),no.disabled=!0,no.classList.add("feedback--button__disabled")};yes.addEventListener("click",()=>{sendFeedback(1),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")}),no.addEventListener("click",()=>{sendFeedback(0),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")})</script><br><div class="text-muted mt-5 pt-3 border-top">Last modified February 9, 2023: <a href=https://github.com/apache/dubbo-website/commit/2008157832676684a5a07173a4dcdebc52b9193c>Update docsy to 0.6.0 (#2141) (2008157832)</a></div></div></main><div class="d-none d-xl-block col-xl-2 td-toc d-print-none"><div class="td-page-meta ml-2 pb-1 pt-2 mb-0"><a href=https://github.com/apache/dubbo-website/edit/master/content/en/overview/tasks/traffic-management/traffic-gray.md target=_blank><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/apache/dubbo-website/new/master/content/en/overview/tasks/traffic-management/traffic-gray.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" target=_blank><i class="fa fa-edit fa-fw"></i> Create child page</a>
<a href="https://github.com/apache/dubbo-website/issues/new?title=Traffic%20Grayscale" target=_blank><i class="fab fa-github fa-fw"></i> Create an issue</a>
<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas fa-tasks fa-fw"></i> Create project issue</a></div><nav id=TableOfContents><ul><li><a href=#before-the-start>before the start</a></li><li><a href=#background-information>Background Information</a></li><li><a href=#steps>Steps</a><ul><li><a href=#conditional-routing>Conditional Routing</a></li><li><a href=#label-routing>Label Routing</a></li></ul></li><li><a href=#result-validation>Result validation</a></li></ul></nav></div></div></div></div><footer class="bg-dark py-5 row d-print-none footer-margin-0"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a class=text-white target=_blank rel="noopener noreferrer" href=https://lists.apache.org/list.html?dev@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel="noopener noreferrer" href=https://github.com/apache/dubbo><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Subscribe to mailing list" aria-label="Subscribe to mailing list"><a class=text-white target=_blank rel="noopener noreferrer" href=mailto:dev-subscribe@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>&copy; 2023 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation. All Rights Reserved</small></div></div></div></footer><div class="row pt-2 pb-2 footer-margin-0"><div class="container-fluid mx-sm-5"><div class=text-center id=my-footer><img style=float:left alt=apache_logo src=/imgs/apache_logo.png><ul><li><a href=https://www.apache.org>Foundation</a></li><li><a href=https://www.apache.org/licenses/>License</a></li><li><a href=https://www.apache.org/security/>Security</a></li><li><a href=https://www.apache.org/events/current-event>Events</a></li><li><a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html>Privacy</a></li><li><a href=https://www.apache.org/foundation/thanks.html>Thanks</a></li></ul></div></div></div><script src=/js/popper.min.js integrity=sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49 crossorigin=anonymous></script>
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.a4534a01940be8c082c4c0e6777b61df9884f202b61c9519352adb6d1039d5aa.js integrity="sha256-pFNKAZQL6MCCxMDmd3th35iE8gK2HJUZNSrbbRA51ao=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
<script>docsearch({appId:"L5F4T9F0I1",apiKey:"364ae307e1da9d02b2335675e9db1eb1",indexName:"apache_dubbo",container:"#docsearch",debug:!1}),docsearch({appId:"L5F4T9F0I1",apiKey:"364ae307e1da9d02b2335675e9db1eb1",indexName:"apache_dubbo",container:"#docsearch_zh_home",debug:!1})</script></body></html>