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/07/13 11:37:52 UTC

[dubbo-website] branch cn-site updated: deploy: bedc876f4720c685ca41602410ef213476ef103f

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 a6f37a4063 deploy: bedc876f4720c685ca41602410ef213476ef103f
a6f37a4063 is described below

commit a6f37a40638931b6f41a0e5d841d437a75456cea
Author: AlbumenJ <Al...@users.noreply.github.com>
AuthorDate: Thu Jul 13 11:37:41 2023 +0000

    deploy: bedc876f4720c685ca41602410ef213476ef103f
---
 en/download/index.html                                              | 2 +-
 sitemap.xml                                                         | 2 +-
 .../index.html"                                                     | 6 +++---
 zh-cn/blog/index.xml                                                | 2 +-
 zh-cn/blog/integration/index.xml                                    | 2 +-
 zh-cn/docs/advanced/index.xml                                       | 2 +-
 zh-cn/docs/advanced/protobuf-idl/index.html                         | 6 +++---
 zh-cn/download/index.html                                           | 2 +-
 zh-cn/index.xml                                                     | 2 +-
 zh-cn/sitemap.xml                                                   | 2 +-
 zh-cn/tags/graalvm/index.xml                                        | 2 +-
 zh-cn/tags/java/index.xml                                           | 2 +-
 zh-cn/tags/native-image/index.xml                                   | 2 +-
 13 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/en/download/index.html b/en/download/index.html
index 6219255c28..7b55ea32c6 100644
--- a/en/download/index.html
+++ b/en/download/index.html
@@ -9,7 +9,7 @@
 <label for=m-endownloadnodejs-check><a href=/en/download/#nodejs class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-endownloadnodejs><span>Node.js</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-endownloadadmin-li><input type=checkbox id=m-endownloadadmin-check>
 <label for=m-endownloadadmin-check><a href=/en/download/#admin class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-endownloadadmin><span>Admin</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-endownloadspi-extensions-li><input type=checkbox id=m-endownloadspi-extensions-check>
 <label for=m-endownloadspi-extensions-check><a href=/en/download/spi-extensions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-endownloadspi-extensions><span>SPI Extensions</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-endownloadpixiu-li><input type=checkbox id=m-endownloadpixiu-check>
-<label for=m-endownloadpixiu-check><a href=/en/download/#pixiu class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-endownloadpixiu><span>Pixiu</span></a></label></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 td-breadcrumbs__single"><ol class=breadcrumb><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/en/download/ aria-disabled=true class= [...]
+<label for=m-endownloadpixiu-check><a href=/en/download/#pixiu class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-endownloadpixiu><span>Pixiu</span></a></label></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 td-breadcrumbs__single"><ol class=breadcrumb><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/en/download/ aria-disabled=true class= [...]
 <button class="btn btn-primary mb-4 feedback--no">No</button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable [...]
 <a href="https://github.com/apache/dubbo-website/new/master/content/en/download/_index.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+t [...]
 <a href="https://github.com/apache/dubbo-website/issues/new?title=Download" target=_blank><i class="fab fa-github fa-fw"></i> Create an issue</a>
diff --git a/sitemap.xml b/sitemap.xml
index 8c0ef5e623..a30a95221d 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-07-09T16:26:17+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-05-10T11:59:30+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-07-13T19:32:24+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-05-10T11:59:30+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git "a/zh-cn/blog/2023/06/28/\350\265\260\345\220\221-native-\345\214\226springdubbo-aot-\346\212\200\346\234\257\347\244\272\344\276\213\344\270\216\345\216\237\347\220\206\350\256\262\350\247\243/index.html" "b/zh-cn/blog/2023/06/28/\350\265\260\345\220\221-native-\345\214\226springdubbo-aot-\346\212\200\346\234\257\347\244\272\344\276\213\344\270\216\345\216\237\347\220\206\350\256\262\350\247\243/index.html"
index d2ae997c64..33d99848df 100644
--- "a/zh-cn/blog/2023/06/28/\350\265\260\345\220\221-native-\345\214\226springdubbo-aot-\346\212\200\346\234\257\347\244\272\344\276\213\344\270\216\345\216\237\347\220\206\350\256\262\350\247\243/index.html"
+++ "b/zh-cn/blog/2023/06/28/\350\265\260\345\220\221-native-\345\214\226springdubbo-aot-\346\212\200\346\234\257\347\244\272\344\276\213\344\270\216\345\216\237\347\220\206\350\256\262\350\247\243/index.html"
@@ -1,6 +1,6 @@
 <!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/blog/2023/06/28/%E8%B5%B0%E5%90%91-native-%E5%8C%96springdubbo-aot-%E6%8A%80%E6%9C%AF%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8E%9F%E7%90%86%E8%AE%B2%E8%A7%A3/><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] [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/blog/2023/06/28/%E8%B5%B0%E5%90%91-native-%E5%8C%96springdubbo-aot-%E6%8A%80%E6%9C%AF%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8E%9F%E7%90%86%E8%AE%B2%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2023-06-28T00:00:00+00:00"><meta property="article:modified_time" content="2023-07-05T13:26:44+08:00"><meta itemprop=name content="走 [...]
-"><meta itemprop=datePublished content="2023-06-28T00:00:00+00:00"><meta itemprop=dateModified content="2023-07-05T13:26:44+08:00"><meta itemprop=wordCount content="633"><meta itemprop=keywords content="Java,Native Image,GraalVM,"><meta name=twitter:card content="summary"><meta name=twitter:title content="走向 Native 化:Spring&amp;Dubbo AOT 技术示例与原理讲解"><meta name=twitter:description content="本文讲解了 GraavlVM 的基本工作原理,Native Image 的构建方式,如何使用 Dubbo AOT 构建打包静态化的 Dubbo 应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/blog/2023/06/28/%E8%B5%B0%E5%90%91-native-%E5%8C%96springdubbo-aot-%E6%8A%80%E6%9C%AF%E7%A4%BA%E4%BE%8B%E4%B8%8E%E5%8E%9F%E7%90%86%E8%AE%B2%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2023-06-28T00:00:00+00:00"><meta property="article:modified_time" content="2023-07-13T19:32:24+08:00"><meta itemprop=name content="走 [...]
+"><meta itemprop=datePublished content="2023-06-28T00:00:00+00:00"><meta itemprop=dateModified content="2023-07-13T19:32:24+08:00"><meta itemprop=wordCount content="633"><meta itemprop=keywords content="Java,Native Image,GraalVM,"><meta name=twitter:card content="summary"><meta name=twitter:title content="走向 Native 化:Spring&amp;Dubbo AOT 技术示例与原理讲解"><meta name=twitter:description content="本文讲解了 GraavlVM 的基本工作原理,Native Image 的构建方式,如何使用 Dubbo AOT 构建打包静态化的 Dubbo 应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。
 "><script async src="https://www.googletagmanager.com/gtag/js?id=G-NM6FFMT51J"></script>
 <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.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css as=style><link href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/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="本文讲解了 GraavlVM 的基本工作原理,Native Image 的构建方式,如何使用 Dubbo AOT 构建打包静态化的 Dubbo 应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。
@@ -198,7 +198,7 @@
 <label for=m-zh-cnblog20221023apache-dubbo-e5a49ae8afade8a880e4bd93e7b3bbe5868de6b7bbe696b0e59198e9a696e4b8aa-rust-e8afade8a880e78988e69cace6ada3e5bc8fe58f91e5b883-check><a href=/zh-cn/blog/2022/10/23/apache-dubbo-%E5%A4%9A%E8%AF%AD%E8%A8%80%E4%BD%93%E7%B3%BB%E5%86%8D%E6%B7%BB%E6%96%B0%E5%91%98%E9%A6%96%E4%B8%AA-rust-%E8%AF%AD%E8%A8%80%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/ title="Apache Dubbo 多语言体系再添新员:首个 Rust 语言版本正式发布" class="align-left pl-0 td-sidebar-link td-sidebar-l [...]
 <label for=m-zh-cnblogpixiu-check><a href=/zh-cn/blog/pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cnblogpixiu><span>Pixiu</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-li><input type=checkbox id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-check>
 <label for=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter-check><a href=/zh-cn/blog/2022/02/19/%E8%B0%88%E8%B0%88pixiu%E7%9A%84filter/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20220219e8b088e8b088pixiue79a84filter><span>谈谈Pixiu的Filter</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-li><input type=checkbox id=m-zh- [...]
-<label for=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-check><a href=/zh-cn/blog/2021/08/25/dubbo-%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E7%A5%9E%E5%85%BDdubbo-go-pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu><span>Dubbo 跨语言调用神兽:dubbo-go-pixiu</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9  [...]
+<label for=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu-check><a href=/zh-cn/blog/2021/08/25/dubbo-%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E7%A5%9E%E5%85%BDdubbo-go-pixiu/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cnblog20210825dubbo-e8b7a8e8afade8a880e8b083e794a8e7a59ee585bddubbo-go-pixiu><span>Dubbo 跨语言调用神兽:dubbo-go-pixiu</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9  [...]
 我们以一个典型的 Spring + Dubbo 的微服务应用为例,要实现这个应用的静态化打包,这里涉及到 Spring、Dubbo 以及一众第三方依赖的 Metadata 处理过程。</p><ul><li>Spring - Spring AOT processing</li><li>Dubbo - Dubbo AOT processing</li><li>Third-party libraries - Reachability Metadata</li></ul><p>对于 Spring 来说,Spring6 中发布了 Spring AOT 机制,用来支持 Spring 应用的静态化预处理;Dubbo 最近也在 3.2 版本中发布了 Dubbo AOT 机制,让 Dubbo 相关组件可以自动化实现 Native 预处理;除了这两个与业务开发密切相关的框架,一个应用中往往还有大量的第三方依赖,这些依赖的 Metadata 也是影响静态化的关键,如果它们中有反射、类加载等行为,那么需要为它们提供 Metadata 配置,对于这些第三方应用目前有两个渠道,一个是 GraalV [...]
 </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>
diff --git a/zh-cn/blog/index.xml b/zh-cn/blog/index.xml
index cca2eea542..a957e8bc37 100644
--- a/zh-cn/blog/index.xml
+++ b/zh-cn/blog/index.xml
@@ -1709,7 +1709,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>
diff --git a/zh-cn/blog/integration/index.xml b/zh-cn/blog/integration/index.xml
index f426a7a067..96c74475fc 100644
--- a/zh-cn/blog/integration/index.xml
+++ b/zh-cn/blog/integration/index.xml
@@ -36,7 +36,7 @@
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>
diff --git a/zh-cn/docs/advanced/index.xml b/zh-cn/docs/advanced/index.xml
index cdc0846525..a88c723445 100644
--- a/zh-cn/docs/advanced/index.xml
+++ b/zh-cn/docs/advanced/index.xml
@@ -792,7 +792,7 @@ Dubbo 默认支持 hibernate-validator 版本 &amp;lt;=6.x,若使用 hibernate
 &lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>map&lt;span style="color:#719e07">.&lt;/span>put&lt;span style="color:#719e07">(&lt;/span>&lt;span style="color:#2aa198">&amp;#34;password&amp;#34;&lt;/span>&lt;span style="color:#719e07">,&lt;/span> &lt;span style="color:#2aa198">&amp;#34;yyy&amp;#34;&lt;/span>&lt;span style="color:#719e07">);&lt;/span>
 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: Protobuf</title><link>https://cn.dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/</guid><description>
 &lt;div class="pageinfo pageinfo-primary">
-&lt;p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅&lt;a href="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/migration-triple/#%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%94%A8%E6%88%B7-%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8-protobuf">最新版本&lt;/a>。&lt;/p>
+&lt;p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅&lt;a href="https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/upgrades-and-compatibility/migration-triple/#%E5%A4%9A%E8%AF%AD%E8%A8%80%E7%94%A8%E6%88%B7">最新版本&lt;/a>。&lt;/p>
 &lt;/div>
 &lt;p>当前 Dubbo 的服务定义和具体的编程语言绑定,没有提供一种语言中立的服务描述格式,比如 Java 就是定义 Interface 接口,到了其他语言又得重新以另外的格式定义一遍。
 2.7.5 版本通过支持 Protobuf IDL 实现了语言中立的服务定义。&lt;/p>
diff --git a/zh-cn/docs/advanced/protobuf-idl/index.html b/zh-cn/docs/advanced/protobuf-idl/index.html
index 0076f18e99..d475444f64 100644
--- a/zh-cn/docs/advanced/protobuf-idl/index.html
+++ b/zh-cn/docs/advanced/protobuf-idl/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/docs/advanced/protobuf-idl/><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,initial-sc [...]
+<!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/docs/advanced/protobuf-idl/><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,initial-sc [...]
 <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.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css as=style><link href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/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="使用 IDL 定义服务"><meta property="og:description" content="使用 IDL 定义服务"><meta name=twitter:description content="使用 IDL 定义服务"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/docs/advanced/protobuf-idl/"><meta property="og:title" content="Protobuf"><meta name=twitter:title content="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=" [...]
@@ -212,7 +212,7 @@
 <label for=m-zh-cndocsreferencesroutersvirtualservice-check><a href=/zh-cn/docs/references/routers/virtualservice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersvirtualservice><span>VirtualService</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsreferencesroutersdestination-rule-li><input type=checkbox id=m-zh-cndocsreferencesroutersdestination-rule-check>
 <label for=m-zh-cndocsreferencesroutersdestination-rule-check><a href=/zh-cn/docs/references/routers/destination-rule/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsreferencesroutersdestination-rule><span>DestinationRule</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cndocsperformance-li><input type=checkbox id=m-zh-cndocsperformance-check>
 <label for=m-zh-cndocsperformance-check><a href=/zh-cn/docs/performance/ title="性能优化 & 基准测试" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cndocsperformance><span>性能优化</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndocsperformancebenchmarking-li><input type=checkbox id=m-zh-cndocsperformancebenchmarking-check>
-<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/docs/>文档</a></li><li cl [...]
+<label for=m-zh-cndocsperformancebenchmarking-check><a href=/zh-cn/docs/performance/benchmarking/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndocsperformancebenchmarking><span>基准测试</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/docs/>文档</a></li><li cl [...]
 2.7.5 版本通过支持 Protobuf IDL 实现了语言中立的服务定义。</p><p>日后,不论我们使用什么语言版本来开发 Dubbo 服务,都可以直接使用 IDL 定义如下服务,具体请<a href=https://github.com/apache/dubbo-samples/tree/master/3-extensions/serialization/dubbo-samples-protobuf>参见示例</a></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>syntax = <span style=color:#2aa198>&#34;proto3&#34;</span>;
 </span></span><span style=display:flex><span>
 </span></span><span style=display:flex><span>option java_multiple_files = <span style=color:#cb4b16>true</span>;
@@ -237,7 +237,7 @@
 </span></span><span style=display:flex><span>  <span style=color:#dc322f>string</span> message = <span style=color:#2aa198>1</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/docs/advanced/protobuf-idl.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+se [...]
 <a href="https://github.com/apache/dubbo-website/issues/new?title=Protobuf" 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></div></div></div></div><footer class="bg-dark py-5 row d-print-none footer-margin-0"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a c [...]
diff --git a/zh-cn/download/index.html b/zh-cn/download/index.html
index 85ce2fd5a1..035d530aab 100644
--- a/zh-cn/download/index.html
+++ b/zh-cn/download/index.html
@@ -9,7 +9,7 @@
 <label for=m-zh-cndownloadnodejs-check><a href=/zh-cn/download/#nodejs class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndownloadnodejs><span>Node.js</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndownloadadmin-li><input type=checkbox id=m-zh-cndownloadadmin-check>
 <label for=m-zh-cndownloadadmin-check><a href=/zh-cn/download/#admin class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndownloadadmin><span>Admin</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndownloadspi-extensions-li><input type=checkbox id=m-zh-cndownloadspi-extensions-check>
 <label for=m-zh-cndownloadspi-extensions-check><a href=/zh-cn/download/spi-extensions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndownloadspi-extensions><span>SPI Extensions</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cndownloadpixiu-li><input type=checkbox id=m-zh-cndownloadpixiu-check>
-<label for=m-zh-cndownloadpixiu-check><a href=/zh-cn/download/#pixiu class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndownloadpixiu><span>Pixiu</span></a></label></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 td-breadcrumbs__single"><ol class=breadcrumb><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/zh-cn/download/ aria-disabled [...]
+<label for=m-zh-cndownloadpixiu-check><a href=/zh-cn/download/#pixiu class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cndownloadpixiu><span>Pixiu</span></a></label></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 td-breadcrumbs__single"><ol class=breadcrumb><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/zh-cn/download/ aria-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/download/_index.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+th [...]
 <a href="https://github.com/apache/dubbo-website/issues/new?title=%e7%89%88%e6%9c%ac%e5%8f%91%e5%b8%83" target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index 63946d885b..44cbfa9255 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -1709,7 +1709,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index d56753f7a9..7fbf2ece16 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
diff --git a/zh-cn/tags/graalvm/index.xml b/zh-cn/tags/graalvm/index.xml
index d80ba38e6d..d11425b9b3 100644
--- a/zh-cn/tags/graalvm/index.xml
+++ b/zh-cn/tags/graalvm/index.xml
@@ -36,7 +36,7 @@
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>
diff --git a/zh-cn/tags/java/index.xml b/zh-cn/tags/java/index.xml
index 7c9c9f1b30..f58a75f4bd 100644
--- a/zh-cn/tags/java/index.xml
+++ b/zh-cn/tags/java/index.xml
@@ -36,7 +36,7 @@
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>
diff --git a/zh-cn/tags/native-image/index.xml b/zh-cn/tags/native-image/index.xml
index 41dbbad53f..82431110f2 100644
--- a/zh-cn/tags/native-image/index.xml
+++ b/zh-cn/tags/native-image/index.xml
@@ -36,7 +36,7 @@
 &lt;li>对于 JIT 而言,我们都知道Java类会被编译为 .class 格式的文件,这里编译后就是 jvm 识别的字节码,在 Java 应用运行的过程中,而 JIT 编译器又将一些热点路径上的字节码编译为机器码,已实现更快的执行速度;&lt;/li>
 &lt;li>对于 AOT 模式来说,它直接在编译期间就将字节码转换为机器码,直接省去了运行时对jvm的依赖,由于省去了 jvm 加载和字节码运行期预热的时间,AOT 编译和打包的程序具有非常高的运行时效率。&lt;/li>
 &lt;/ul>
-&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-compilation2.png" alt="image.png">&lt;/p>
+&lt;p>&lt;img src="https://cn.dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-copilation2.png" alt="image.png">&lt;/p>
 &lt;p>总的来说,JIT 使得应用可以具备更高的极限处理能力,可以降低请求的最大延迟这一关键指标;而 AOT 则可以进一步的提升应用的冷启动速度、具有更小的二进制包提及、在运行态需要更少的内存等资源。&lt;/p>
 &lt;h2 id="什么是-native-image">什么是 Native Image?&lt;/h2>
 &lt;p>我们上面多次提到 GraalVM 中 Native Image 概念,Native Image 是一项将 Java 代码编译打包为可执行二进制程序的技术,打出的包中仅包含运行期所需要的代码,包括应用自身代码、标准依赖包、 语言运行时、JDK 库关联的静态代码。这个包的运行不再需要 jvm 环境,当然它是和具体的机器环境相绑定的,需要为不同的机器环境单独打包。 Native Image 有这里列出来的一系列特点:&lt;/p>