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 24b09d6ee37 deploy: 1ca03ab5db9d48824802789eb74d943039f6932f
24b09d6ee37 is described below
commit 24b09d6ee37f51b6e9b0fcfc2ce4358c2dc27bcb
Author: AlbumenJ <[email protected]>
AuthorDate: Fri May 31 08:05:05 2024 +0000
deploy: 1ca03ab5db9d48824802789eb74d943039f6932f
---
css/app.css | 2 +-
css/chunk-vendors.css | 2 +-
js/app.js | 3 +-
js/chunk-vendors.js | 37 +---------------------
sitemap.xml | 2 +-
.../service/attachment/index.html | 28 ++++++++++++++--
.../advanced-features-and-usage/service/index.xml | 27 ++++++++++++++++
zh-cn/overview/tasks/develop/context/index.html | 30 ++++++++++++++++--
zh-cn/overview/tasks/develop/index.xml | 30 +++++++++++++++++-
zh-cn/sitemap.xml | 2 +-
10 files changed, 115 insertions(+), 48 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/js/app.js b/js/app.js
index 4c5595c9fd2..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.6f937064.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 ff65a729b3b..069248774b1 100644
--- a/js/chunk-vendors.js
+++ b/js/chunk-vendors.js
@@ -1,36 +1 @@
-(self["webpackChunkdubbo_benchmark"]=self["webpackChunkdubbo_benchmark"]||[]).push([[504],{1656:function(e,t,n){"use
strict";function i(e,t,n,i,r,o,a,s){var l,u="function"===typeof
e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof
__VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&& [...]
-/**
- * @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],
[...]
-/*!
- * 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},9030:function(e,t,n){"use
strict";var i=n(8656),r=n(2021),o= [...]
-//# sourceMappingURL=chunk-vendors.65974a5f.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 f515cab21cb..b4da0f383de 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>2024-05-30T16:01:34+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-05-28T10:14:17+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>2024-05-31T16:00:25+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-05-28T10:14:17+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git
a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/index.html
b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/index.html
index de79504e2bc..ff194fa6fa8 100644
---
a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/index.html
+++
b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/index.html
@@ -1,5 +1,5 @@
<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=v [...]
-<meta property="og:description" content="通过 Dubbo 中的 Attachment
在服务消费方和提供方之间隐式传递参数"><meta property="og:type" content="article"><meta
property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/"><meta
property="article:section" content="overview"><meta
property="article:modified_time" content="2023-05-21T10:26:13+08:00"><meta
itemprop=name content="调用链路传递隐式参数"><meta itemprop=description content="通过 Dubbo
中的 Attachm [...]
+<meta property="og:description" content="通过 Dubbo 中的 Attachment
在服务消费方和提供方之间隐式传递参数"><meta property="og:type" content="article"><meta
property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/attachment/"><meta
property="article:section" content="overview"><meta
property="article:modified_time" content="2024-05-31T16:00:25+08:00"><meta
itemprop=name content="调用链路传递隐式参数"><meta itemprop=description content="通过 Dubbo
中的 Attachm [...]
<label for=m-zh-cnoverviewhome-check><a href=/zh-cn/overview/home/
title="Dubbo 文档" class="align-left pl-0 td-sidebar-link
td-sidebar-link__section"
id=m-zh-cnoverviewhome><span>主页</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section with-child"
id=m-zh-cnoverviewquickstart-li><input type=checkbox
id=m-zh-cnoverviewquickstart-check>
<label for=m-zh-cnoverviewquickstart-check><a href=/zh-cn/overview/quickstart/
title="Dubbo 入门" class="align-left pl-0 td-sidebar-link
td-sidebar-link__section"
id=m-zh-cnoverviewquickstart><span>入门</span></a></label><ul class="ul-2
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section
with-child" id=m-zh-cnoverviewquickstartjava-li><input type=checkbox
id=m-zh-cnoverviewquickstartjava-check>
<label for=m-zh-cnoverviewquickstartjava-check><a
href=/zh-cn/overview/quickstart/java/ title="Java 微服务开发入门" class="align-left
pl-0 td-sidebar-link td-sidebar-link__section"
id=m-zh-cnoverviewquickstartjava><span>Java</span></a></label><ul class="ul-3
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section
without-child" id=m-zh-cnoverviewquickstartjavabrief-li><input type=checkbox
id=m-zh-cnoverviewquickstartjavabrief-check>
@@ -717,8 +717,32 @@ Dubbo 3 对 RpcContext 进行了重构,支持可选参数透传,默认开启
</span></span><span style=display:flex><span> Map<span
style=color:#719e07><</span>String, Object<span
style=color:#719e07>></span> <span style=color:#268bd2>select</span>();
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>}
+</span></span></code></pre></div><h1
id=历史遗留问题>历史遗留问题</h1><p>在之前的版本中,你可能会见到这样的使用方式:</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:#268bd2>@Activate</span>(group <span style=color:#719e07>=</span>
{CommonConstants.CONSUMER})
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span
style=color:#268bd2>DubboConsumerFilter</span> <span
style=color:#268bd2>implements</span> Filter {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>@Override</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>public</span> Result <span
style=color:#268bd2>invoke</span>(Invoker<span
style=color:#719e07><?></span> invoker, Invocation invocation) <span
style=color:#268bd2>throws</span> RpcException {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
RpcContext.getContext().setAttachment(<span
style=color:#2aa198>"demo"</span>,<span
style=color:#2aa198>"demo02"</span>);
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span> invoker.invoke(invocation);
+</span></span><span style=display:flex><span> }
+</span></span><span style=display:flex><span>}
+</span></span></code></pre></div><p>但是在新版本中我们的建议是 <strong>在 Filter 里面的尽可能不要操作
RpcContext</strong>,上面的使用方式会导致不生效。原因在于新版本中,我们在<code>ConsumerContextFilter</code>类中做了<code>ClientAttachment</code>
->
<code>Invocation</code>属性的复制,该类是Dubbo内置Filter类,而内置Filter类先于用户定义Filter类执行,所以在自定义Filter类中这样使用不会生效。
+可以直接使用这种方式进行传递:</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:#268bd2>@Activate</span>(group <span style=color:#719e07>=</span>
{CommonConstants.CONSUMER})
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span
style=color:#268bd2>DubboConsumerFilter</span> <span
style=color:#268bd2>implements</span> Filter {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>@Override</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>public</span> Result <span
style=color:#268bd2>invoke</span>(Invoker<span
style=color:#719e07><?></span> invoker, Invocation invocation) <span
style=color:#268bd2>throws</span> RpcException {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
invocation.setAttachment(<span style=color:#2aa198>"demo"</span>,<span
style=color:#2aa198>"demo02"</span>);
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span> invoker.invoke(invocation);
+</span></span><span style=display:flex><span> }
+</span></span><span style=display:flex><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/advanced-features-and-usage/service/attachment.md?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-star
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=%e8%b0%83%e7%94%a8%e9%93%be%e8%b7%af%e4%bc%a0%e9%80%92%e9%9a%90%e5%bc%8f%e5%8f%82%e6%95%b0"
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><ul><li></li></ul></li><li><a href=#使用场景>使用场景</a></li><li><a
href=#使用方式>使用方式</a><ul><li><a href=#在服务消费方端设置隐式参数>在服务消费方端设置隐式参数</a></li><li><a
href=#在服务提供方端获取隐式参数>在服务提供方端获取隐式参数</a></li><li><a
href=#在服务提供方写入回传参数>在服务提供方写入回传参数</a></li><li><a
href=#在消费端获取回传参数>在消费端获取回传参数</a></li></ul></li></ul></nav></div></div></div></div><foot
[...]
\ No newline at end of file
diff --git
a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/index.xml
b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/index.xml
index 26b3f596386..2bd2745851b 100644
---
a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/index.xml
+++
b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/index.xml
@@ -1857,6 +1857,33 @@ Dubbo 3 对 RpcContext 进行了重构,支持可选参数透传,默认开启
</span></span><span style="display:flex;"><span> Map<span
style="color:#719e07">&lt;</span>String, Object<span
style="color:#719e07">&gt;</span> <span
style="color:#268bd2">select</span>();
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><h1
id="历史遗留问题">历史遗留问题</h1>
+<p>在之前的版本中,你可能会见到这样的使用方式:</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:#268bd2">@Activate</span>(group <span
style="color:#719e07">=</span> {CommonConstants.CONSUMER})
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">class</span> <span
style="color:#268bd2">DubboConsumerFilter</span> <span
style="color:#268bd2">implements</span> Filter {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">@Override</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">public</span> Result <span
style="color:#268bd2">invoke</span>(Invoker<span
style="color:#719e07">&lt;?&gt;</span> invoker, Invocation
invocation) <span style="color:#268bd2">throws</span> RpcException {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
RpcContext.getContext().setAttachment(<span
style="color:#2aa198">&#34;demo&#34;</span>,<span
style="color:#2aa198">&#34;demo02&#34;</span>);
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span> invoker.invoke(invocation);
+</span></span><span style="display:flex;"><span> }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>但是在新版本中我们的建议是
<strong>在 Filter 里面的尽可能不要操作
RpcContext</strong>,上面的使用方式会导致不生效。原因在于新版本中,我们在<code>ConsumerContextFilter</code>类中做了<code>ClientAttachment</code>
-&gt;
<code>Invocation</code>属性的复制,该类是Dubbo内置Filter类,而内置Filter类先于用户定义Filter类执行,所以在自定义Filter类中这样使用不会生效。
+可以直接使用这种方式进行传递:</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:#268bd2">@Activate</span>(group <span
style="color:#719e07">=</span> {CommonConstants.CONSUMER})
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">class</span> <span
style="color:#268bd2">DubboConsumerFilter</span> <span
style="color:#268bd2">implements</span> Filter {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">@Override</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">public</span> Result <span
style="color:#268bd2">invoke</span>(Invoker<span
style="color:#719e07">&lt;?&gt;</span> invoker, Invocation
invocation) <span style="color:#268bd2">throws</span> RpcException {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
invocation.setAttachment(<span
style="color:#2aa198">&#34;demo&#34;</span>,<span
style="color:#2aa198">&#34;demo02&#34;</span>);
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span> invoker.invoke(invocation);
+</span></span><span style="display:flex;"><span> }
+</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></description></item><item><title>Overview:
动态指定 IP
调用</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/specify-ip/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/specify-ip/</guid><description>
<h2 id="特性说明">特性说明</h2>
<p>使用 Dubbo 的扩展,实现指定 IP 调用。</p>
diff --git a/zh-cn/overview/tasks/develop/context/index.html
b/zh-cn/overview/tasks/develop/context/index.html
index 15758f42056..185f20bfb1b 100644
--- a/zh-cn/overview/tasks/develop/context/index.html
+++ b/zh-cn/overview/tasks/develop/context/index.html
@@ -1,5 +1,5 @@
<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/context/><script>var
_hmt=_hmt||[];(function(){var
e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta
charset=utf-8><meta name=viewport content="width=device-width,initia [...]
-<meta property="og:description" content="通过 Dubbo 中的 Attachment
在服务消费方和提供方之间传递参数"><meta property="og:type" content="article"><meta
property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/context/"><meta
property="article:section" content="overview"><meta
property="article:modified_time" content="2023-03-01T09:48:32+08:00"><meta
itemprop=name content="上下文参数传递"><meta itemprop=description content="通过 Dubbo 中的
Attachment 在服务消费方和提供方之间传递参数"><meta itemprop=dateModifi [...]
+<meta property="og:description" content="通过 Dubbo 中的 Attachment
在服务消费方和提供方之间传递参数"><meta property="og:type" content="article"><meta
property="og:url"
content="https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/context/"><meta
property="article:section" content="overview"><meta
property="article:modified_time" content="2024-05-31T16:00:25+08:00"><meta
itemprop=name content="上下文参数传递"><meta itemprop=description content="通过 Dubbo 中的
Attachment 在服务消费方和提供方之间传递参数"><meta itemprop=dateModifi [...]
<label for=m-zh-cnoverviewhome-check><a href=/zh-cn/overview/home/
title="Dubbo 文档" class="align-left pl-0 td-sidebar-link
td-sidebar-link__section"
id=m-zh-cnoverviewhome><span>主页</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section with-child"
id=m-zh-cnoverviewquickstart-li><input type=checkbox
id=m-zh-cnoverviewquickstart-check>
<label for=m-zh-cnoverviewquickstart-check><a href=/zh-cn/overview/quickstart/
title="Dubbo 入门" class="align-left pl-0 td-sidebar-link
td-sidebar-link__section"
id=m-zh-cnoverviewquickstart><span>入门</span></a></label><ul class="ul-2
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section
with-child" id=m-zh-cnoverviewquickstartjava-li><input type=checkbox
id=m-zh-cnoverviewquickstartjava-check>
<label for=m-zh-cnoverviewquickstartjava-check><a
href=/zh-cn/overview/quickstart/java/ title="Java 微服务开发入门" class="align-left
pl-0 td-sidebar-link td-sidebar-link__section"
id=m-zh-cnoverviewquickstartjava><span>Java</span></a></label><ul class="ul-3
foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section
without-child" id=m-zh-cnoverviewquickstartjavabrief-li><input type=checkbox
id=m-zh-cnoverviewquickstartjavabrief-check>
@@ -704,8 +704,32 @@
</span></span><span style=display:flex><span> Map<span
style=color:#719e07><</span>String, Object<span
style=color:#719e07>></span> clientAttachment <span
style=color:#719e07>=</span>
RpcContext.getServerContext().getObjectAttachments();
</span></span><span style=display:flex><span> System.out.println(<span
style=color:#2aa198>"ContextTask clientAttachment:"</span> <span
style=color:#719e07>+</span> JSON.toJSONString(clientAttachment));
</span></span><span style=display:flex><span> System.out.println(<span
style=color:#2aa198>"ContextService Return : "</span> <span
style=color:#719e07>+</span> res);
-</span></span></code></pre></div><p><em><font color=#FF7D00
size=4>注意</font></em></p><blockquote><p>path, group, version, dubbo, token,
timeout 几个 key 是保留字段,请使用其它值。</p></blockquote><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
[...]
+</span></span></code></pre></div><p><em><font color=#FF7D00
size=4>注意</font></em></p><blockquote><p>path, group, version, dubbo, token,
timeout 几个 key 是保留字段,请使用其它值。</p></blockquote><h1
id=历史遗留问题>历史遗留问题</h1><p>在之前的版本中,你可能会见到这样的使用方式:</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:#268bd2>@Activate</span>(group <span style=c [...]
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span
style=color:#268bd2>DubboConsumerFilter</span> <span
style=color:#268bd2>implements</span> Filter {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>@Override</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>public</span> Result <span
style=color:#268bd2>invoke</span>(Invoker<span
style=color:#719e07><?></span> invoker, Invocation invocation) <span
style=color:#268bd2>throws</span> RpcException {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
RpcContext.getContext().setAttachment(<span
style=color:#2aa198>"demo"</span>,<span
style=color:#2aa198>"demo02"</span>);
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span> invoker.invoke(invocation);
+</span></span><span style=display:flex><span> }
+</span></span><span style=display:flex><span>}
+</span></span></code></pre></div><p>但是在新版本中我们的建议是 <strong>在 Filter 里面的尽可能不要操作
RpcContext</strong>,上面的使用方式会导致不生效。原因在于新版本中,我们在<code>ConsumerContextFilter</code>类中做了<code>ClientAttachment</code>
->
<code>Invocation</code>属性的复制,该类是Dubbo内置Filter类,而内置Filter类先于用户定义Filter类执行,所以在自定义Filter类中这样使用不会生效。
+可以直接使用这种方式进行传递:</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:#268bd2>@Activate</span>(group <span style=color:#719e07>=</span>
{CommonConstants.CONSUMER})
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span
style=color:#268bd2>DubboConsumerFilter</span> <span
style=color:#268bd2>implements</span> Filter {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>@Override</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>public</span> Result <span
style=color:#268bd2>invoke</span>(Invoker<span
style=color:#719e07><?></span> invoker, Invocation invocation) <span
style=color:#268bd2>throws</span> RpcException {
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>
invocation.setAttachment(<span style=color:#2aa198>"demo"</span>,<span
style=color:#2aa198>"demo02"</span>);
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span> invoker.invoke(invocation);
+</span></span><span style=display:flex><span> }
+</span></span><span style=display:flex><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
[...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/overview/tasks/develop/context.md?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%60%0A%2A+Edit+the+%22front+matter%2
[...]
<a
href="https://github.com/apache/dubbo-website/issues/new?title=%e4%b8%8a%e4%b8%8b%e6%96%87%e5%8f%82%e6%95%b0%e4%bc%a0%e9%80%92"
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></li><li><a
href=#使用方式>使用方式</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-i [...]
\ No newline at end of file
diff --git a/zh-cn/overview/tasks/develop/index.xml
b/zh-cn/overview/tasks/develop/index.xml
index 5ac05217bc0..1dcebdb8552 100644
--- a/zh-cn/overview/tasks/develop/index.xml
+++ b/zh-cn/overview/tasks/develop/index.xml
@@ -381,7 +381,35 @@ Provider端异步执行将阻塞的业务从Dubbo内部线程池切换到业务
</span></span></code></pre></div><p><em><font
color='#FF7D00' size=4 > 注意 </font></em></p>
<blockquote>
<p>path, group, version, dubbo, token, timeout 几个 key 是保留字段,请使用其它值。</p>
-</blockquote></description></item><item><title>Overview:
开发服务</title><link>https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/generic/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/generic/</guid><description>
+</blockquote>
+<h1 id="历史遗留问题">历史遗留问题</h1>
+<p>在之前的版本中,你可能会见到这样的使用方式:</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:#268bd2">@Activate</span>(group <span
style="color:#719e07">=</span> {CommonConstants.CONSUMER})
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">class</span> <span
style="color:#268bd2">DubboConsumerFilter</span> <span
style="color:#268bd2">implements</span> Filter {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">@Override</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">public</span> Result <span
style="color:#268bd2">invoke</span>(Invoker<span
style="color:#719e07">&lt;?&gt;</span> invoker, Invocation
invocation) <span style="color:#268bd2">throws</span> RpcException {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
RpcContext.getContext().setAttachment(<span
style="color:#2aa198">&#34;demo&#34;</span>,<span
style="color:#2aa198">&#34;demo02&#34;</span>);
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span> invoker.invoke(invocation);
+</span></span><span style="display:flex;"><span> }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>但是在新版本中我们的建议是
<strong>在 Filter 里面的尽可能不要操作
RpcContext</strong>,上面的使用方式会导致不生效。原因在于新版本中,我们在<code>ConsumerContextFilter</code>类中做了<code>ClientAttachment</code>
-&gt;
<code>Invocation</code>属性的复制,该类是Dubbo内置Filter类,而内置Filter类先于用户定义Filter类执行,所以在自定义Filter类中这样使用不会生效。
+可以直接使用这种方式进行传递:</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:#268bd2">@Activate</span>(group <span
style="color:#719e07">=</span> {CommonConstants.CONSUMER})
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">class</span> <span
style="color:#268bd2">DubboConsumerFilter</span> <span
style="color:#268bd2">implements</span> Filter {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">@Override</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">public</span> Result <span
style="color:#268bd2">invoke</span>(Invoker<span
style="color:#719e07">&lt;?&gt;</span> invoker, Invocation
invocation) <span style="color:#268bd2">throws</span> RpcException {
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>
invocation.setAttachment(<span
style="color:#2aa198">&#34;demo&#34;</span>,<span
style="color:#2aa198">&#34;demo02&#34;</span>);
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span> invoker.invoke(invocation);
+</span></span><span style="display:flex;"><span> }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div></description></item><item><title>Overview:
开发服务</title><link>https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/generic/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/generic/</guid><description>
<h2 id="泛化调用">泛化调用</h2>
<p>泛化调用(客户端泛化调用)是指在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用,并且可以正常拿到调用结果。</p>
<h2 id="使用场景">使用场景</h2>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index b31f8134ab4..3cde95fae22 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></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
[...]
\ 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></url><url><loc>https://cn.dubbo.apache.org/zh-cn/overview/mannu
[...]
\ No newline at end of file