blob: fcb7bb43530aeda19ab0c46436dfd5526671a37a [file] [log] [blame]
<!doctype html><html lang=zh-cn class=no-js><headclass="live-site"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/><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>dubbogo 3.0 柔性服务 | Apache Dubbo</title><meta property="og:title" content="dubbogo 3.0 柔性服务"><meta property="og:description" content="dubbogo 3.0 柔性服务"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/"><meta property="article:section" content="overview"><meta property="article:modified_time" content="2023-03-01T15:24:06+08:00"><meta itemprop=name content="dubbogo 3.0 柔性服务"><meta itemprop=description content="dubbogo 3.0 柔性服务"><meta itemprop=dateModified content="2023-03-01T15:24:06+08:00"><meta itemprop=wordCount content="29"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbogo 3.0 柔性服务"><meta name=twitter:description content="dubbogo 3.0 柔性服务"><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="dubbogo 3.0 柔性服务"><meta property="og:description" content="dubbogo 3.0 柔性服务"><meta name=twitter:description content="dubbogo 3.0 柔性服务"><meta property="og:url" content="https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/"><meta property="og:title" content="dubbogo 3.0 柔性服务"><meta name=twitter:title content="dubbogo 3.0 柔性服务"><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><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=/zh-cn/><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 href=/zh-cn/overview/home/><span>文档</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/download/><span>版本发布</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/contact/><span>联系社区</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 mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/github/><span>Github</span><i class='fa-brands fa-github'></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>版本列表</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/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>Java-3.3</a>
<a class=dropdown-item href=https://v3-2.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>Java-3.2</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>Go-3.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>Nodejs-0.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>Web-0.1</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/governance/limit/adaptive-service/>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>中文</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</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=zh-cn 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-大会精彩回顾/>Dubbo 微服务专题论坛</a> 精彩回顾!</h4><p>Community Over Code 2023 暨 ApacheCon Asia 2023 大会在 8月18 - 8月20日在北京举办,让我们一起回顾一下可观测、Native、协议、Kubernetes部署、企业微服务实践等 8 个议题的精彩分享!</p></div></aside></div></header><div class=td-outer><main role=main class=td-main><h1 id=柔性负载均衡-柔性服务>柔性负载均衡 (柔性服务)</h1><p>柔性服务是一种去中心化的智能负载均衡组件,同时也是 Dubbo-go 3.0 版本中重磅新特性之一。柔性服务尚处于早期实验阶段,该特性将在后续版本中持续优化,与 Dubbo 社区共同探索出一套适合微服务场景的最佳实践。</p><p>传统的负载均衡算法是由随机节点、RoundRobin 等算法实现,他们的局限性在于不知道当前服务提供者的负载情况,算法总是以尽可能公平的概率调用不同的服务提供者。在实践中,公平不等于高性能,集群服务性能还与服务负载、任务复杂度等多因素相关。为解决传统负载均衡算法的不足,Dubbo-go 在 3.0 版本中引入了柔性服务,实现了容量动态评估和分流功能。</p><p>容量评估是柔性服务的核心,它能动态评估服务端容量水平。在容量评估的过程中,两个核心指标是 TPS 和响应时间,要平衡系统利用率和系统性能两者之间的关系,使整体处于最佳的状态。</p><ul><li>TPS 从服务提供者的角度反映系统利用率。在系统压力未饱和前,请求数越大则系统利用率越高,但是进一步加大请求量直至系统过饱和后,出现过载的问题,导致整体效率呈下降趋势。</li><li>响应时间是从服务调用者的角度反映系统性能。在系统压力未饱和前,响应时间与请求数成线性增长的关系,但是进一步加大请求量直至系统过饱和后,响应时间与请求数成指数级增长。</li></ul><p><img src=/imgs/docs3-v2/golang-sdk/samples/adaptive-service/adaptive.png alt=img></p><p>柔性服务则在调用过程中收集</p><p>在 Dubbo-go 3.0 版本中,支持服务柔性负载均衡。在微服务场景下,客户端会在调用过程中收集该服务下游 server 实例的硬件资源消耗情况,通过容量评估与筛选策略,选择最合适的下游实例进行调用,从而提升系统整体的性能。</p><p>服务柔性将在之后的迭代中持续优化,追求与 Dubbo 社区共同探索出最佳实践。</p></main></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. 保留所有权利</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>