This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch cn-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/cn-site by this push:
new 3ec9ba0cbfe deploy: f7839bffc906832b18ec1068daf8b41c6cada2ab
3ec9ba0cbfe is described below
commit 3ec9ba0cbfe9495187f59a52e383d44007051d70
Author: RainYuY <[email protected]>
AuthorDate: Tue Jan 13 12:07:43 2026 +0000
deploy: f7839bffc906832b18ec1068daf8b41c6cada2ab
---
css/app.css | 2 +-
css/chunk-vendors.css | 2 +-
imgs/v3/tasks/protocol/backpress-client.png | Bin 0 -> 258276 bytes
imgs/v3/tasks/protocol/backpress-server.png | Bin 0 -> 225964 bytes
imgs/v3/tasks/protocol/backpress.png | Bin 0 -> 145615 bytes
js/app.js | 3 +-
js/chunk-vendors.js | 61 +--------------------
sitemap.xml | 2 +-
.../protocol/triple-backpress/index.html | 56 +------------------
zh-cn/sitemap.xml | 2 +-
10 files changed, 9 insertions(+), 119 deletions(-)
diff --git a/css/app.css b/css/app.css
index 44c2a2c2469..b9457c8de14 100644
--- a/css/app.css
+++ b/css/app.css
@@ -1 +1 @@
-h3[data-v-76eccb7f]{margin:40px 0
0}ul[data-v-76eccb7f]{list-style-type:none;padding:0}li[data-v-76eccb7f]{display:inline-block;margin:0
10px}a[data-v-76eccb7f]{color:#42b983}.form-layout[data-v-76eccb7f]{display:flex;justify-content:space-between;align-items:flex-start}.left-form[data-v-76eccb7f]{flex:1;max-width:calc(50%
-
20px);margin-right:20px}.right-text[data-v-76eccb7f]{flex-shrink:0;width:calc(50%
- 20px)}.left-form
.el-form-item__label[data-v-76eccb7f]{text-align:left}.left-form [...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build
time*/
\ No newline at end of file
diff --git a/css/chunk-vendors.css b/css/chunk-vendors.css
index 61c66238ea8..b9457c8de14 100644
--- a/css/chunk-vendors.css
+++ b/css/chunk-vendors.css
@@ -1 +1 @@
-@font-face{font-family:element-icons;src:url(../fonts/element-icons.ff18efd1.woff)
format("woff"),url(../fonts/element-icons.f1a45d74.ttf)
format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*="
el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:gr
[...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build
time*/
\ No newline at end of file
diff --git a/imgs/v3/tasks/protocol/backpress-client.png
b/imgs/v3/tasks/protocol/backpress-client.png
new file mode 100644
index 00000000000..2e3e6c0a0d5
Binary files /dev/null and b/imgs/v3/tasks/protocol/backpress-client.png differ
diff --git a/imgs/v3/tasks/protocol/backpress-server.png
b/imgs/v3/tasks/protocol/backpress-server.png
new file mode 100644
index 00000000000..6f5732a48c5
Binary files /dev/null and b/imgs/v3/tasks/protocol/backpress-server.png differ
diff --git a/imgs/v3/tasks/protocol/backpress.png
b/imgs/v3/tasks/protocol/backpress.png
new file mode 100644
index 00000000000..57afa57ec3b
Binary files /dev/null and b/imgs/v3/tasks/protocol/backpress.png differ
diff --git a/js/app.js b/js/app.js
index aa10cde1b4d..069248774b1 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1,2 +1 @@
-(function(){"use strict";var t={9763:function(t,e,s){var
r=s(2856),l=function(){var t=this,e=t._self._c;return
e("div",{attrs:{id:"app"}},[e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"30px"}},[t._v("Dubbo
基准测试")])])],1),e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"15px","text-align":"right"}},[e("a",{attrs:{target:"_blank",href:"https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-
[...]
-//# sourceMappingURL=app.26f08139.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build
time
\ No newline at end of file
diff --git a/js/chunk-vendors.js b/js/chunk-vendors.js
index a8bdcb01bb4..069248774b1 100644
--- a/js/chunk-vendors.js
+++ b/js/chunk-vendors.js
@@ -1,60 +1 @@
-(self["webpackChunkdubbo_benchmark"]=self["webpackChunkdubbo_benchmark"]||[]).push([[504],{34:function(e,t,n){"use
strict";var i=n(4901);e.exports=function(e){return"object"==typeof
e?null!==e:i(e)}},81:function(e,t,n){"use strict";var
i=n(9565),r=n(9306),o=n(8551),a=n(6823),s=n(851),l=TypeError;e.exports=function(e,t){var
n=arguments.length<2?s(e):t;if(r(n))return o(i(n,e));throw new l(a(e)+" is not
iterable")}},116:function(e,t,n){"use strict";var
i=n(6518),r=n(9565),o=n(2652),a=n(9306 [...]
-/*!
- * jQuery JavaScript Library v3.7.1
- * https://jquery.com/
- *
- * Copyright OpenJS Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
- *
- * Date: 2023-08-28T13:37Z
- */
-function(t,n){"use strict";"object"===typeof
e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new
Error("jQuery requires a window with a document");return
n(e)}:n(t)}("undefined"!==typeof window?window:this,function(n,o){"use
strict";var a=[],s=Object.getPrototypeOf,l=a.slice,u=a.flat?function(e){return
a.flat.call(e)}:function(e){return
a.concat.apply([],e)},c=a.push,h=a.indexOf,d={},p=d.toString,f=d.hasOwnProperty,g=f.toString,v=g.call(Object),m={},y=function(e){
[...]
-/**
- * Checks if an event is supported in the current execution environment.
- *
- * NOTE: This will not work correctly for non-generic events such as `change`,
- * `reset`, `load`, `error`, and `select`.
- *
- * Borrows from Modernizr.
- *
- * @param {string} eventNameSuffix Event name, e.g. "click".
- * @param {?boolean} capture Check if the capture phase is supported.
- * @return {boolean} True if the event is supported.
- * @internal
- * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */
-function o(e,t){if(!r.canUseDOM||t&&!("addEventListener"in
document))return!1;var n="on"+e,o=n in document;if(!o){var
a=document.createElement("div");a.setAttribute(n,"return;"),o="function"===typeof
a[n]}return!o&&i&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=o},2059:function(e,t){"use
strict";t.__esModule=!0,t["default"] [...]
-/**
- * @fileOverview Kickass library to create and place poppers near their
reference elements.
- * @version {{version}}
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE
- * SOFTWARE.
- */(function(o,a){i=a,r="function"===typeof i?i.call(t,n,t,e):i,void
0===r||(e.exports=r)})(0,function(){var
e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function
n(e,n,i){this._reference=e [...]
-/**
- * @license
- * Lodash <https://lodash.com/>
- * Copyright JS Foundation and other contributors <https://js.foundation/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters &
Editors
- */(function(){var o,a="4.17.10",s=200,l="Unsupported core-js use. Try
https://npms.io/search?q=ponyfill.",u="Expected a
function",c="__lodash_hash_undefined__",h=500,d="__lodash_placeholder__",p=1,f=2,g=4,v=1,m=2,y=1,b=2,_=4,x=8,w=16,S=32,C=64,k=128,M=256,T=512,D=30,I="...",O=800,A=16,E=1,P=2,L=3,N=1/0,R=9007199254740991,$=17976931348623157e292,z=NaN,V=4294967295,F=V-1,B=V>>>1,j=[["ary",k],["bind",y],["bindKey",b],["curry",x],["curryRight",w],["flip",T],["partial",S],["partialRight",C],
[...]
-//# sourceMappingURL=chunk-vendors.f2355b92.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build
time
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index c9e91e0c4b4..479d1d7bf95 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-01-08T20:36:51+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-01-08T20:36:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-01-13T20:01:27+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-01-08T20:36:51+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/index.html
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/index.html
index 353a77fd43c..e6b56c2ec5c 100644
---
a/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/index.html
+++
b/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=alternate hreflang=en
href=https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/><link
rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/><script>var
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookie
[...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=alternate hreflang=en
href=https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/><link
rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/protocol/triple-backpress/><script>var
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookie
[...]
<a class=dropdown-item href=/zh-cn/overview/notices/>安全公告</a>
<a class=dropdown-item href=/zh-cn/contact/>贡献者指南</a></div></li><li
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link
href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item nav-item-line
px-2 mb-2 mb-lg-0"><a class=nav-link
href=/zh-cn/download/><span>下载</span></a></li><li class="nav-item dropdown
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="dropdo [...]
<a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -691,57 +691,7 @@
<label for=m-zh-cnoverviewnoticesprotocol-check><a
href=/zh-cn/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link
td-sidebar-link__page" id=m-zh-cnoverviewnoticesprotocol><span>RPC
协议安全</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewnoticesregistry-li><input type=checkbox
id=m-zh-cnoverviewnoticesregistry-check>
<label for=m-zh-cnoverviewnoticesregistry-check><a
href=/zh-cn/overview/notices/registry/ class="align-left pl-0 td-sidebar-link
td-sidebar-link__page"
id=m-zh-cnoverviewnoticesregistry><span>注册中心安全</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child"
id=m-zh-cnoverviewnoticesadmin-li><input type=checkbox
id=m-zh-cnoverviewnoticesadmin-check>
<label for=m-zh-cnoverviewnoticesadmin-check><a
href=/zh-cn/overview/notices/admin/ class="align-left pl-0 td-sidebar-link
td-sidebar-link__page" id=m-zh-cnoverviewnoticesadmin><span>Dubbo Admin
安全</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticeslog4j-li><input
type=checkbox id=m-zh-cnoverviewnoticeslog4j-check>
-<label for=m-zh-cnoverviewnoticeslog4j-check><a
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j
漏洞影响</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=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove
[...]
- subgraph Application["应用层 (Application)"]
- API["StreamObserver / CallStreamObserver API<br/>- isReady()
/ setOnReadyHandler()<br/>- request() / disableAutoFlowControl()"]
- end
-
- subgraph Framework["框架层 (Framework)"]
- Adapter["ClientCallToObserverAdapter /
ServerCallStreamObserver<br/>- 管理 onReadyHandler 回调<br/>- 维护
autoFlowControl 状态"]
- end
-
- subgraph Transport["传输层 (Transport)"]
- Channel["H2StreamChannel<br/>- isReady():
检查传输缓冲区状态<br/>- consumeBytes(): 触发 WINDOW_UPDATE"]
- end
-
- subgraph Network["网络层 (Network)"]
- Controller["TripleHttp2LocalFlowController<br/>- HTTP/2
流量控制窗口管理<br/>- WINDOW_UPDATE 帧发送"]
- end
-
- Application --> Framework
- Framework --> Transport
- Transport --> Network</pre><h3 id=网络层数据流转>网络层数据流转</h3><h4
id=发送端背压流程>发送端背压流程</h4><pre class=mermaid>sequenceDiagram
- participant Sender as 发送方
- participant Receiver as 接收方
-
- Note over Sender: 1. 检查 isReady()
- alt isReady() == true
- Note over Sender: 可以发送数据
- else isReady() == false
- Note over Sender: 等待 onReadyHandler 回调
- end
-
- Sender->>Receiver: 2. 发送数据 onNext()<br/>HTTP/2 DATA Frame
-
- Note over Receiver: 3.
接收方处理数据<br/>消耗接收窗口<br/>(receiveFlowControlledFrame)
-
- Note over Receiver: 4. 数据处理完成<br/>调用 consumeBytes() 归还窗口
-
- Receiver->>Sender: 5. 窗口达到阈值<br/>HTTP/2 WINDOW_UPDATE Frame
-
- Note over Sender: 6. 发送方收到更新<br/>触发 onReadyHandler</pre><h4
id=接收端背压流程>接收端背压流程</h4><pre class=mermaid>sequenceDiagram
- participant Consumer as 消费方
- participant Producer as 生产方
-
- Note over Consumer: 1. 禁用自动请求<br/>disableAutoRequest()
或<br/>disableAutoRequestWithInitial(n)
-
- Consumer->>Producer: 2. 请求初始数据 request(n)<br/>(内部:增大接收窗口)
-
- Producer->>Consumer: 3. 生产方发送 n 条数据<br/>HTTP/2 DATA Frames
-
- Note over Consumer: 4. 消费方处理数据<br/>onNext() 被调用
-
- Consumer->>Producer: 5. 处理完成,请求更多数据<br/>request(1)</pre><h3
id=http2-流量控制器>HTTP/2 流量控制器</h3><p>Triple 使用自定义的
<code>TripleHttp2LocalFlowController</code> 实现 HTTP/2 流量控制:</p><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-java data-lang=java><span style=display:flex><span><span
style=color:#586e75>/**
+<label for=m-zh-cnoverviewnoticeslog4j-check><a
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j
漏洞影响</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=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove
[...]
</span></span></span><span style=display:flex><span><span style=color:#586e75>
* 自定义 HTTP/2 本地流量控制器
</span></span></span><span style=display:flex><span><span style=color:#586e75>
*
</span></span></span><span style=display:flex><span><span style=color:#586e75>
* 工作机制:
@@ -1136,7 +1086,7 @@
</span></span><span style=display:flex><span><span style=color:#586e75>#
运行测试</span>
</span></span><span style=display:flex><span>mvn <span
style=color:#b58900>test</span>
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p
class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4
feedback--yes">是</button>
-<button class="btn btn-primary mb-4
feedback--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
[...]
+<button class="btn btn-primary mb-4
feedback--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
[...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/java-sdk/reference-manual/protocol/triple-backpress?filename=change-me.md&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
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=Triple%20%e5%8d%8f%e8%ae%ae%e8%83%8c%e5%8e%8b%e6%9c%ba%e5%88%b6"
target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a
href=#概述>概述</a></li><li><a href=#核心概念>核心概念</a><ul><li><a
href=#背压类型>背压类型</a></li><li><a href=#核心-api>核心 API</a></li><li><a
href=#api-分类>API 分类</a></li></ul></li><li><a href=#技术原理>技术原理</a><ul><li><a
href=#架构概述>架构概述</a></li><li><a href=#网络层数据流转>网络层数据流转</a></li><li><a
href=#http2-流量控制器>HTTP/2 流量控制器</a></li></ul></li><li><a href=#使用方式>使用方式</a>
[...]
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index c52e89550bb..a3ea2afbaac 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file