You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by gi...@apache.org on 2023/04/13 12:18:29 UTC

[dubbo-website] branch cn-site updated: deploy: 2f02d34cd42980c4dd031a1b7e2a0b3dbfe12437

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 07c613ec19 deploy: 2f02d34cd42980c4dd031a1b7e2a0b3dbfe12437
07c613ec19 is described below

commit 07c613ec19321b2daa43f5f59f9bc81964fecb06
Author: CrazyHZM <Cr...@users.noreply.github.com>
AuthorDate: Thu Apr 13 12:18:23 2023 +0000

    deploy: 2f02d34cd42980c4dd031a1b7e2a0b3dbfe12437
---
 sitemap.xml                                        |   2 +-
 .../performance/index.xml                          | 274 +++++++++------------
 .../performance/support-graalvm/index.html         | 229 ++++++++---------
 zh-cn/sitemap.xml                                  |   2 +-
 4 files changed, 224 insertions(+), 283 deletions(-)

diff --git a/sitemap.xml b/sitemap.xml
index fd1f3f6534..b29f700294 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>2023-04-12T00:54:23+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-04-12T00:54:23+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>2023-04-13T20:14:22+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-04-12T00:54:23+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/index.xml b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/index.xml
index a9c669af60..f2e4265c92 100644
--- a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/index.xml
+++ b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/index.xml
@@ -855,7 +855,7 @@
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dubbo:reference&amp;gt;&lt;/span>
 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Overview: 支持 Graal VM</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/</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/performance/support-graalvm/</guid><description>
 &lt;h2 id="功能说明">功能说明&lt;/h2>
-&lt;p>Dubbo3.0 支持 Native-Image 文档, 本文档将介绍将 dubbo3.0 项目接入 GraalVM,进行 native-image 编译为二进制的流程。&lt;/p>
+&lt;p>Dubbo3.2 支持 Native-Image 文档, 本文档将介绍将 dubbo3.0 项目接入 GraalVM,进行 native-image 编译为二进制的流程。&lt;/p>
 &lt;p>关于 GraalVm 的更多信息可以阅读 &lt;a href="https://www.graalvm.org/docs/getting-started/container-images/">https://www.graalvm.org/docs/getting-started/container-images/&lt;/a> 此文档。&lt;/p>
 &lt;h2 id="使用场景">使用场景&lt;/h2>
 &lt;ol>
@@ -868,167 +868,131 @@
 &lt;/ol>
 &lt;h2 id="使用方式">使用方式&lt;/h2>
 &lt;p>在编译我们的dubbo项目之前,需要确保我们正基于graalVm的环境。&lt;/p>
-&lt;h3 id="安装graalvm">安装GraalVM&lt;/h3>
-&lt;p>进入 &lt;a href="https://www.graalvm.org/">https://www.graalvm.org/&lt;/a> 官网根据自己的系统选取最新版本安装:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/graalvmgw.jpg" alt="img">&lt;/p>
-&lt;p>安装完成后,修改配置 JAVA_HOME 的路径,生效后查看本地 jdk 可以看到如下:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/graalvm_env.jpg" alt="img">
-这里我们使用的基于jdk1.8版本的GraalVM。&lt;/p>
-&lt;ul>
-&lt;li>安装native-image,只需执行gu install native-image即可。&lt;/li>
-&lt;/ul>
+&lt;h3 id="第一步安装graalvm">第一步:安装GraalVM&lt;/h3>
 &lt;ol>
-&lt;li>拉取dubbo代码,切换到&lt;a href="https://github.com/apache/dubbo">apache:3.0&lt;/a>分支。&lt;/li>
-&lt;li>手动执行生成SPI代码。&lt;/li>
+&lt;li>在Graalvm官网根据自己的系统选取对应Graalvm版本:https://www.graalvm.org/downloads/&lt;/li>
+&lt;li>根据官方文档安装native-image:https://www.graalvm.org/latest/reference-manual/native-image/#install-native-image&lt;/li>
 &lt;/ol>
-&lt;p>由于目前编译native-image不支持代码动态生成编译,所以有关代码动态生成的部分需要我们手动先生成,这里提供了工具函数:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/code_generator.jpg" alt="img">
-执行CodeGenerator即可在dubbo-native模块下生成SPI代码。&lt;/p>
-&lt;h3 id="在根目录下执行install">在根目录下执行install&lt;/h3>
-&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>MacdeMacBook&lt;span style="color:#719e07">-&lt;/span>pro&lt;span style="color:#719e07">-&lt;/span>&lt;span style="color:#2aa198">3&lt;/span>:incubator&lt;span style="color:#719e07">-&lt;/span>dubbo mac$ pwd
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">/&lt;/span>Users&lt;span style="color:#719e07">/&lt;/span>mac&lt;span style="color:#719e07">/&lt;/span>Documents&lt;span style="color:#719e07">/&lt;/span>Mi&lt;span style="color:#719e07">/&lt;/span>project&lt;span style="color:#719e07">/&lt;/span>incubator&lt;span style="color:#719e07">-&lt;/span>dubbo
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>MacdeMacBook&lt;span style="color:#719e07">-&lt;/span>pro&lt;span style="color:#719e07">-&lt;/span>&lt;span style="color:#2aa198">3&lt;/span>:incubator&lt;span style="color:#719e07">-&lt;/span>dubbo mac$ mvn clean &lt;span style="color:#719e07">package&lt;/span> install &lt;span style="color:#719e07">-&lt;/span>Dmaven.test.skip=&lt;span style="color:#cb4b16">true&lt;/span>
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="编译demo项目">编译demo项目&lt;/h3>
-&lt;p>这里我们提供了可直接进行编译的示例项目,dubbo-demo/dubbo-demo-native。上面步骤install完成后,先到dubbo-demo-native的provider下,执行native-image编译:&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span> mvn clean &lt;span style="color:#719e07">package&lt;/span> &lt;span style="color:#719e07">-&lt;/span>P native &lt;span style="color:#719e07">-&lt;/span>Dmaven.test.skip=&lt;span style="color:#cb4b16">true&lt;/span>
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这里由于我们在maven中引入了native-image插件,所以直接-P native即可执行该插件。&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/native_image_build.jpg" alt="img">
-编译成功后可以在target下看到已经生成的二进制文件,本地启动一个zookeeper,直接执行该二进制,可见启动成功如下:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/run_provider.jpg" alt="img">
-consumer端同样执行编译,在consumer的target下也会生成二进制文件:demo-native-consumer,执行该二进制可以看到调用结果如下:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/run_consumer.jpg" alt="img">&lt;/p>
-&lt;h3 id="具体步骤">具体步骤&lt;/h3>
-&lt;p>实际上在这个demo下我们做了一些工作来确保项目可以编译执行,主要有以下几个步骤&lt;/p>
+&lt;h3 id="第二步配置profiles">第二步:配置profiles&lt;/h3>
+&lt;p>其中包括maven-compiler-plugin、spring-boot-maven-plugin、native-maven-plugin、dubbo-maven-plugin,修改dubbo-maven-plugin中的mainClass为所需的启动类全路径。(其中API使用方式无需添加spring-boot-maven-plugin依赖。)&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;profiles&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;profile&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;id&amp;gt;&lt;/span>native&lt;span style="color:#268bd2">&amp;lt;/id&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;build&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;plugins&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>maven-compiler-plugin&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;release&amp;gt;&lt;/span>17&lt;span style="color:#268bd2">&amp;lt;/release&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;fork&amp;gt;&lt;/span>true&lt;span style="color:#268bd2">&amp;lt;/fork&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;verbose&amp;gt;&lt;/span>true&lt;span style="color:#268bd2">&amp;lt;/verbose&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.springframework.boot&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>spring-boot-maven-plugin&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;id&amp;gt;&lt;/span>process-aot&lt;span style="color:#268bd2">&amp;lt;/id&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goal&amp;gt;&lt;/span>process-aot&lt;span style="color:#268bd2">&amp;lt;/goal&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.graalvm.buildtools&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>native-maven-plugin&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>0.9.20&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;classesDirectory&amp;gt;&lt;/span>${project.build.outputDirectory}&lt;span style="color:#268bd2">&amp;lt;/classesDirectory&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;metadataRepository&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;enabled&amp;gt;&lt;/span>true&lt;span style="color:#268bd2">&amp;lt;/enabled&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/metadataRepository&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;requiredVersion&amp;gt;&lt;/span>22.3&lt;span style="color:#268bd2">&amp;lt;/requiredVersion&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;id&amp;gt;&lt;/span>add-reachability-metadata&lt;span style="color:#268bd2">&amp;lt;/id&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goal&amp;gt;&lt;/span>add-reachability-metadata&lt;span style="color:#268bd2">&amp;lt;/goal&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-maven-plugin&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>${dubbo.version}&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;mainClass&amp;gt;&lt;/span>com.example.nativedemo.NativeDemoApplication&lt;span style="color:#268bd2">&amp;lt;/mainClass&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/configuration&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;phase&amp;gt;&lt;/span>process-sources&lt;span style="color:#268bd2">&amp;lt;/phase&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;goal&amp;gt;&lt;/span>dubbo-process-aot&lt;span style="color:#268bd2">&amp;lt;/goal&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/goals&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/execution&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/executions&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/plugin&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/plugins&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/build&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/profile&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;/profiles&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="第三步在pom依赖中添加native相关的依赖">第三步:在Pom依赖中添加native相关的依赖:&lt;/h3>
+&lt;p>其中API使用方式无需添加dubbo-config-spring6依赖。&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-config-spring6&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>${dubbo.version}&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-native&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>${dubbo.version}&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="第四步调整compilerproxyserialization和logger">第四步:调整compiler、proxy、serialization和logger&lt;/h3>
 &lt;ul>
-&lt;li>引入dubbo-native依赖&lt;/li>
+&lt;li>序列化方式目前支持的比较好的是Fastjson2&lt;/li>
+&lt;li>compiler、proxy目前只能选择jdk&lt;/li>
+&lt;li>logger目前需要配置slf4j,目前仅支持logback&lt;/li>
 &lt;/ul>
-&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>&amp;lt;dependency&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;groupId&amp;gt;org.apache.dubbo&amp;lt;/groupId&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;artifactId&amp;gt;dubbo-native&amp;lt;/artifactId&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/dependency&amp;gt;
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>该模块下有我们生成的SPI代码。&lt;/p>
+&lt;p>示例配置如下:&lt;/p>
+&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">dubbo&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">application&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">name&lt;/span>: ${spring.application.name}
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">logger&lt;/span>: slf4j
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">compiler&lt;/span>: jdk
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">protocol&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">name&lt;/span>: dubbo
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">port&lt;/span>: -&lt;span style="color:#2aa198">1&lt;/span>
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">serialization&lt;/span>: fastjson2
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">registry&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">id&lt;/span>: zk-registry
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: zookeeper://127.0.0.1:2181
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">config-center&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: zookeeper://127.0.0.1:2181
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">metadata-report&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">address&lt;/span>: zookeeper://127.0.0.1:2181
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">provider&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">proxy&lt;/span>: jdk
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">serialization&lt;/span>: fastjson2
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">consumer&lt;/span>:
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">proxy&lt;/span>: jdk
+&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">serialization&lt;/span>: fastjson2
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="第五步编译">第五步:编译&lt;/h3>
+&lt;p>在项目根路径下执行以下编译命令:&lt;/p>
 &lt;ul>
-&lt;li>引入native-image插件&lt;/li>
+&lt;li>API方式直接执行&lt;/li>
 &lt;/ul>
-&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>&amp;lt;plugin&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;groupId&amp;gt;org.graalvm.nativeimage&amp;lt;/groupId&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;artifactId&amp;gt;native-image-maven-plugin&amp;lt;/artifactId&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;version&amp;gt;21.0.0.2&amp;lt;/version&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;executions&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;execution&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;goals&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;goal&amp;gt;native-image&amp;lt;/goal&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/goals&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/execution&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/executions&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;configuration&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;skip&amp;gt;false&amp;lt;/skip&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;imageName&amp;gt;demo-native-provider&amp;lt;/imageName&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;mainClass&amp;gt;org.apache.dubbo.demo.graalvm.provider.Application&amp;lt;/mainClass&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;buildArgs&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --no-fallback
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.slf4j.MDC
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.slf4j.LoggerFactory
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.slf4j.impl.StaticLoggerBinder
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.apache.log4j.helpers.Loader
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.apache.log4j.Logger
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.apache.log4j.helpers.LogLog
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.apache.log4j.LogManager
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.apache.log4j.spi.LoggingEvent
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.slf4j.impl.Log4jLoggerFactory
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.slf4j.impl.Log4jLoggerAdapter
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-build-time=org.eclipse.collections.api.factory.Sets
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.epoll.Epoll
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.epoll.Native
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.epoll.EpollEventLoop
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.epoll.EpollEventArray
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.DefaultFileRegion
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventArray
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventLoop
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.kqueue.Native
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.unix.Errors
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.unix.IovArray
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.unix.Limits
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.unix.Socket
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --initialize-at-run-time=io.netty.channel.ChannelHandlerMask
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --report-unsupported-elements-at-runtime
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --allow-incomplete-classpath
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --enable-url-protocols=http
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -H:+ReportExceptionStackTraces
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/buildArgs&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/configuration&amp;gt;
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
-&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/plugin&amp;gt;
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>其中定义了生成的镜像名以及一些构建镜像的参数。&lt;/p>
-&lt;ul>
-&lt;li>挂载native-image-agent&lt;/li>
+&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span> mvn clean install -P native -Dmaven.test.skip=true
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
+&lt;li>注解和xml方式(Springboot3集成的方式)&lt;/li>
 &lt;/ul>
-&lt;p>由于我们需要将一些反射、JNI等类先指定出来,我们需要先使用该agent以正常方式运行一遍生成这些类的json形式的信息。&lt;/p>
-&lt;p>在启动参数中添加:&lt;/p>
-&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>-agentlib:native-image-agent=config-output-dir=/tmp/config/,config-write-period-secs=300,config-write-initial-delay-secs=5
-&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>以正常方式启动,在项目的resources下建立文件夹META-INF.native-image,把在本地目录中生成的文件粘进去:&lt;/p>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/dubbo3.0-graalvm-support/resources.jpg" alt="img">
-(可能会有缺漏没有生成的类信息,需要根据编译或运行时的报错信息手动添加。)&lt;/p>
-&lt;p>&lt;strong>完成以上几步后就可以进行项目的编译了。&lt;/strong>&lt;/p></description></item><item><title>Overview: 导出线程堆栈</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/dump/</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/performance/dump/</guid><description>
+&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span> mvn clean install -P native native:compile -Dmaven.test.skip&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#b58900">true&lt;/span>
+&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="第六步执行二进制文件即可">第六步:执行二进制文件即可&lt;/h3>
+&lt;p>二进制文件在target/目录下,一般以工程名称为二进制包的名称,比如target/native-demo&lt;/p></description></item><item><title>Overview: 导出线程堆栈</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/dump/</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/performance/dump/</guid><description>
 &lt;h2 id="功能说明">功能说明&lt;/h2>
 &lt;p>dubbo 通过 Jstack 自动导出线程堆栈来保留现场,方便排查问题。&lt;/p>
 &lt;p>默认策略&lt;/p>
diff --git a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/index.html b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/index.html
index e577d63b02..1da69960a6 100644
--- a/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/index.html
+++ b/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/index.html
@@ -1,4 +1,4 @@
-<!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/performance/support-graalvm/><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><me [...]
+<!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/performance/support-graalvm/><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><me [...]
 <script>var doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link rel=preload href=/scss/main.min.7fa6d3c7f521df6fedf4e016ce03c86424bbf48f7b0d070a25f450054a7fcfeb.css as=style><link href=/scss/main.min.7fa6d3c7f521df6fedf4e016ce03c86424bbf48f7b0d070a25f450054a7fcfeb.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/a [...]
 <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="Dubbo 支持 Graal VM"><meta property="og:description" content="Dubbo 支持 Graal VM"><meta name=twitter:description content="Dubbo 支持 Graal VM"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm/"><meta pr [...]
 <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=/zh-cn/><span class=navbar-logo></span><span class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class=" [...]
@@ -725,133 +725,110 @@
 <label for=m-zh-cnoverviewreferenceproposalsadmin-check><a href=/zh-cn/overview/reference/proposals/admin/ title="Dubbo Admin 控制面总体架构设计" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewreferenceproposalsadmin><span>Admin 架构设计</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewreferenceproposalsmetrics-li><input type=checkbox id=m-zh-cnoverviewreferenceproposalsmetrics-check>
 <label for=m-zh-cnoverviewreferenceproposalsmetrics-check><a href=/zh-cn/overview/reference/proposals/metrics/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewreferenceproposalsmetrics><span>指标埋点</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-li><input type=checkbox id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-check>
 <label for=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-check><a href=/zh-cn/overview/reference/proposals/heuristic-flow-control/ title=自适应负载均衡与限流 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control><span>服务柔性</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnoverviewreferenceproposalsservice-discovery-li><input type=checkbox id=m-zh-cnoverviewref [...]
-<label for=m-zh-cnoverviewreferenceproposalsservice-discovery-check><a href=/zh-cn/overview/reference/proposals/service-discovery/ title="Dubbo3 应用级服务发现设计" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewreferenceproposalsservice-discovery><span>应用级服务发现</span></a></label></li></ul></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  [...]
-这里我们使用的基于jdk1.8版本的GraalVM。</p><ul><li>安装native-image,只需执行gu install native-image即可。</li></ul><ol><li>拉取dubbo代码,切换到<a href=https://github.com/apache/dubbo>apache:3.0</a>分支。</li><li>手动执行生成SPI代码。</li></ol><p>由于目前编译native-image不支持代码动态生成编译,所以有关代码动态生成的部分需要我们手动先生成,这里提供了工具函数:</p><p><img src=/imgs/blog/dubbo3.0-graalvm-support/code_generator.jpg alt=img>
-执行CodeGenerator即可在dubbo-native模块下生成SPI代码。</p><h3 id=在根目录下执行install>在根目录下执行install</h3><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-go data-lang=go><span style=display:flex><span>MacdeMacBook<span style=color:#719e07>-</span>pro<span style=color:#719e07>-</span><span style=color:#2aa198>3</span>:incubator<span style=color:#719e07>-</span>dubbo mac$ pwd
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span style=color:#719e07>/</span>Users<span style=color:#719e07>/</span>mac<span style=color:#719e07>/</span>Documents<span style=color:#719e07>/</span>Mi<span style=color:#719e07>/</span>project<span style=color:#719e07>/</span>incubator<span style=color:#719e07>-</span>dubbo
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>MacdeMacBook<span style=color:#719e07>-</span>pro<span style=color:#719e07>-</span><span style=color:#2aa198>3</span>:incubator<span style=color:#719e07>-</span>dubbo mac$ mvn clean <span style=color:#719e07>package</span> install <span style=color:#719e07>-</span>Dmaven.test.skip=<span style=color:#cb4b16>true</span>
-</span></span></code></pre></div><h3 id=编译demo项目>编译demo项目</h3><p>这里我们提供了可直接进行编译的示例项目,dubbo-demo/dubbo-demo-native。上面步骤install完成后,先到dubbo-demo-native的provider下,执行native-image编译:</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-go data-lang=go><span style=display:flex><span> mvn clean <span style=color:#719e07>package</span> <span style=color:#719e07>-</span>P native <span style=color:#719e07> [...]
-</span></span></code></pre></div><p>这里由于我们在maven中引入了native-image插件,所以直接-P native即可执行该插件。</p><p><img src=/imgs/blog/dubbo3.0-graalvm-support/native_image_build.jpg alt=img>
-编译成功后可以在target下看到已经生成的二进制文件,本地启动一个zookeeper,直接执行该二进制,可见启动成功如下:</p><p><img src=/imgs/blog/dubbo3.0-graalvm-support/run_provider.jpg alt=img>
-consumer端同样执行编译,在consumer的target下也会生成二进制文件:demo-native-consumer,执行该二进制可以看到调用结果如下:</p><p><img src=/imgs/blog/dubbo3.0-graalvm-support/run_consumer.jpg alt=img></p><h3 id=具体步骤>具体步骤</h3><p>实际上在这个demo下我们做了一些工作来确保项目可以编译执行,主要有以下几个步骤</p><ul><li>引入dubbo-native依赖</li></ul><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-fallback data-lang=fallback><span style=display:flex><span>&lt;dependency&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;groupId&gt;org.apache.dubbo&lt;/groupId&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;artifactId&gt;dubbo-native&lt;/artifactId&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;version&gt;${project.version}&lt;/version&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>&lt;/dependency&gt;
-</span></span></code></pre></div><p>该模块下有我们生成的SPI代码。</p><ul><li>引入native-image插件</li></ul><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-fallback data-lang=fallback><span style=display:flex><span>&lt;plugin&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;groupId&gt;org.graalvm.nativeimage&lt;/groupId&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;artifactId&gt;native-image-maven-plugin&lt;/artifactId&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;version&gt;21.0.0.2&lt;/version&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;executions&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;execution&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            &lt;goals&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>                &lt;goal&gt;native-image&lt;/goal&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            &lt;/goals&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            &lt;phase&gt;package&lt;/phase&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;/execution&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;/executions&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;configuration&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;skip&gt;false&lt;/skip&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;imageName&gt;demo-native-provider&lt;/imageName&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;mainClass&gt;org.apache.dubbo.demo.graalvm.provider.Application&lt;/mainClass&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;buildArgs&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --no-fallback
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.slf4j.MDC
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.slf4j.LoggerFactory
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.slf4j.impl.StaticLoggerBinder
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.apache.log4j.helpers.Loader
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.apache.log4j.Logger
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.apache.log4j.helpers.LogLog
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.apache.log4j.LogManager
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.apache.log4j.spi.LoggingEvent
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.slf4j.impl.Log4jLoggerFactory
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.slf4j.impl.Log4jLoggerAdapter
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-build-time=org.eclipse.collections.api.factory.Sets
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.epoll.Epoll
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.epoll.Native
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.epoll.EpollEventLoop
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.epoll.EpollEventArray
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.DefaultFileRegion
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventArray
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventLoop
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.kqueue.Native
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.unix.Errors
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.unix.IovArray
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.unix.Limits
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.unix.Socket
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --initialize-at-run-time=io.netty.channel.ChannelHandlerMask
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --report-unsupported-elements-at-runtime
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --allow-incomplete-classpath
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            --enable-url-protocols=http
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>            -H:+ReportExceptionStackTraces
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>        &lt;/buildArgs&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>    &lt;/configuration&gt;
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span>&lt;/plugin&gt;
-</span></span></code></pre></div><p>其中定义了生成的镜像名以及一些构建镜像的参数。</p><ul><li>挂载native-image-agent</li></ul><p>由于我们需要将一些反射、JNI等类先指定出来,我们需要先使用该agent以正常方式运行一遍生成这些类的json形式的信息。</p><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-fallback data-lang=fallback><span style=display:flex><span>-agentlib:native-image-agent=config-output-dir=/tmp/config/,config-write-period-secs=300,config-write-in [...]
-</span></span></code></pre></div><p>以正常方式启动,在项目的resources下建立文件夹META-INF.native-image,把在本地目录中生成的文件粘进去:</p><p><img src=/imgs/blog/dubbo3.0-graalvm-support/resources.jpg alt=img>
-(可能会有缺漏没有生成的类信息,需要根据编译或运行时的报错信息手动添加。)</p><p><strong>完成以上几步后就可以进行项目的编译了。</strong></p><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 [...]
+<label for=m-zh-cnoverviewreferenceproposalsservice-discovery-check><a href=/zh-cn/overview/reference/proposals/service-discovery/ title="Dubbo3 应用级服务发现设计" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnoverviewreferenceproposalsservice-discovery><span>应用级服务发现</span></a></label></li></ul></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  [...]
+</span></span><span style=display:flex><span>        <span style=color:#268bd2>&lt;profile&gt;</span>
+</span></span><span style=display:flex><span>            <span style=color:#268bd2>&lt;id&gt;</span>native<span style=color:#268bd2>&lt;/id&gt;</span>
+</span></span><span style=display:flex><span>            <span style=color:#268bd2>&lt;build&gt;</span>
+</span></span><span style=display:flex><span>                <span style=color:#268bd2>&lt;plugins&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;plugin&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;artifactId&gt;</span>maven-compiler-plugin<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;configuration&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;release&gt;</span>17<span style=color:#268bd2>&lt;/release&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;fork&gt;</span>true<span style=color:#268bd2>&lt;/fork&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;verbose&gt;</span>true<span style=color:#268bd2>&lt;/verbose&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/configuration&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;/plugin&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;plugin&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;groupId&gt;</span>org.springframework.boot<span style=color:#268bd2>&lt;/groupId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;artifactId&gt;</span>spring-boot-maven-plugin<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;executions&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;execution&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;id&gt;</span>process-aot<span style=color:#268bd2>&lt;/id&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;goals&gt;</span>
+</span></span><span style=display:flex><span>                                    <span style=color:#268bd2>&lt;goal&gt;</span>process-aot<span style=color:#268bd2>&lt;/goal&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;/goals&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;/execution&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/executions&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;/plugin&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;plugin&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;groupId&gt;</span>org.graalvm.buildtools<span style=color:#268bd2>&lt;/groupId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;artifactId&gt;</span>native-maven-plugin<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;version&gt;</span>0.9.20<span style=color:#268bd2>&lt;/version&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;configuration&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;classesDirectory&gt;</span>${project.build.outputDirectory}<span style=color:#268bd2>&lt;/classesDirectory&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;metadataRepository&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;enabled&gt;</span>true<span style=color:#268bd2>&lt;/enabled&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;/metadataRepository&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;requiredVersion&gt;</span>22.3<span style=color:#268bd2>&lt;/requiredVersion&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/configuration&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;executions&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;execution&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;id&gt;</span>add-reachability-metadata<span style=color:#268bd2>&lt;/id&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;goals&gt;</span>
+</span></span><span style=display:flex><span>                                    <span style=color:#268bd2>&lt;goal&gt;</span>add-reachability-metadata<span style=color:#268bd2>&lt;/goal&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;/goals&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;/execution&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/executions&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;/plugin&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;plugin&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;groupId&gt;</span>org.apache.dubbo<span style=color:#268bd2>&lt;/groupId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;artifactId&gt;</span>dubbo-maven-plugin<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;version&gt;</span>${dubbo.version}<span style=color:#268bd2>&lt;/version&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;configuration&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;mainClass&gt;</span>com.example.nativedemo.NativeDemoApplication<span style=color:#268bd2>&lt;/mainClass&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/configuration&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;executions&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;execution&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;phase&gt;</span>process-sources<span style=color:#268bd2>&lt;/phase&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;goals&gt;</span>
+</span></span><span style=display:flex><span>                                    <span style=color:#268bd2>&lt;goal&gt;</span>dubbo-process-aot<span style=color:#268bd2>&lt;/goal&gt;</span>
+</span></span><span style=display:flex><span>                                <span style=color:#268bd2>&lt;/goals&gt;</span>
+</span></span><span style=display:flex><span>                            <span style=color:#268bd2>&lt;/execution&gt;</span>
+</span></span><span style=display:flex><span>                        <span style=color:#268bd2>&lt;/executions&gt;</span>
+</span></span><span style=display:flex><span>                    <span style=color:#268bd2>&lt;/plugin&gt;</span>
+</span></span><span style=display:flex><span>                <span style=color:#268bd2>&lt;/plugins&gt;</span>
+</span></span><span style=display:flex><span>            <span style=color:#268bd2>&lt;/build&gt;</span>
+</span></span><span style=display:flex><span>        <span style=color:#268bd2>&lt;/profile&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;/profiles&gt;</span>
+</span></span></code></pre></div><h3 id=第三步在pom依赖中添加native相关的依赖>第三步:在Pom依赖中添加native相关的依赖:</h3><p>其中API使用方式无需添加dubbo-config-spring6依赖。</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-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2>&lt;dependency&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;groupId&gt;</span>org.apache.dubbo<span style=color:#268bd2>&lt;/groupId&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;artifactId&gt;</span>dubbo-config-spring6<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;version&gt;</span>${dubbo.version}<span style=color:#268bd2>&lt;/version&gt;</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>&lt;/dependency&gt;</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>&lt;dependency&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;groupId&gt;</span>org.apache.dubbo<span style=color:#268bd2>&lt;/groupId&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;artifactId&gt;</span>dubbo-native<span style=color:#268bd2>&lt;/artifactId&gt;</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>&lt;version&gt;</span>${dubbo.version}<span style=color:#268bd2>&lt;/version&gt;</span>
+</span></span><span style=display:flex><span><span style=color:#268bd2>&lt;/dependency&gt;</span>
+</span></span></code></pre></div><h3 id=第四步调整compilerproxyserialization和logger>第四步:调整compiler、proxy、serialization和logger</h3><ul><li>序列化方式目前支持的比较好的是Fastjson2</li><li>compiler、proxy目前只能选择jdk</li><li>logger目前需要配置slf4j,目前仅支持logback</li></ul><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-yaml data-lang=yaml><span style=display:flex><span><span style=color:#268bd2>dubbo</span>:
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>application</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>name</span>: ${spring.application.name}
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>logger</span>: slf4j
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>compiler</span>: jdk
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>protocol</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>name</span>: dubbo
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>port</span>: -<span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>serialization</span>: fastjson2
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>registry</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>id</span>: zk-registry
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>address</span>: zookeeper://127.0.0.1:2181
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>config-center</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>address</span>: zookeeper://127.0.0.1:2181
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>metadata-report</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>address</span>: zookeeper://127.0.0.1:2181
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>provider</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>proxy</span>: jdk
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>serialization</span>: fastjson2
+</span></span><span style=display:flex><span>  <span style=color:#268bd2>consumer</span>:
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>proxy</span>: jdk
+</span></span><span style=display:flex><span>    <span style=color:#268bd2>serialization</span>: fastjson2
+</span></span></code></pre></div><h3 id=第五步编译>第五步:编译</h3><p>在项目根路径下执行以下编译命令:</p><ul><li>API方式直接执行</li></ul><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-fallback data-lang=fallback><span style=display:flex><span> mvn clean install -P native -Dmaven.test.skip=true
+</span></span></code></pre></div><ul><li>注解和xml方式(Springboot3集成的方式)</li></ul><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-shell data-lang=shell><span style=display:flex><span> mvn clean install -P native native:compile -Dmaven.test.skip<span style=color:#719e07>=</span><span style=color:#b58900>true</span>
+</span></span></code></pre></div><h3 id=第六步执行二进制文件即可>第六步:执行二进制文件即可</h3><p>二进制文件在target/目录下,一般以工程名称为二进制包的名称,比如target/native-demo</p><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/mannual/java-sdk/advanced-features-and-usage/performance/support-graalvm.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.+%60get [...]
 <a href="https://github.com/apache/dubbo-website/issues/new?title=%e6%94%af%e6%8c%81%20Graal%20VM" 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><ul><li><a href=#安装graalvm>安装GraalVM</a></li><li><a href=#在根目录下执行install>在根目录下执行install</a></li><li><a href=#编译demo项目>编译demo项目</a></li><li><a href=#具体步骤>具体步骤</a></li></ul></li></ul></nav></div></div></div></div><footer class="bg-dark py-5 row d-print-none foot [...]
+<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><ul><li><a href=#第一步安装graalvm>第一步:安装GraalVM</a></li><li><a href=#第二步配置profiles>第二步:配置profiles</a></li><li><a href=#第三步在pom依赖中添加native相关的依赖>第三步:在Pom依赖中添加native相关的依赖:</a></li><li><a href=#第四步调整compilerproxyserialization和logger>第四步:调整compiler、proxy、serialization和 [...]
 <script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
 <script src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug=" crossorigin=anonymous></script>
 <script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 5411f95e87..1a3a9e0145 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-02-22T15:03:22+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-02-22T15:03:22+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