This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site-v2
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/asf-site-v2 by this push:
new 147d66a6ae0 deploy: 388bce64e3ae20a482f861ac1099ef52c769ce42
147d66a6ae0 is described below
commit 147d66a6ae03ff832f53b77f76c307bef7685cff
Author: AlbumenJ <[email protected]>
AuthorDate: Tue Oct 17 09:08:37 2023 +0000
deploy: 388bce64e3ae20a482f861ac1099ef52c769ce42
---
sitemap.xml | 2 +-
.../index.html" | 6 +++---
zh-cn/blog/index.xml | 4 ++--
zh-cn/blog/integration/index.xml | 4 ++--
zh-cn/index.xml | 4 ++--
zh-cn/sitemap.xml | 2 +-
zh-cn/tags/graalvm/index.xml | 4 ++--
zh-cn/tags/java/index.xml | 4 ++--
zh-cn/tags/native-image/index.xml | 4 ++--
9 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index 6f7ef7bfeb7..f2df9bd8aed 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://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-10-17T16:29:34+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-10-17T16:50:15+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://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-10-17T16:56:35+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-10-17T16:50:15+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 f38542da68c..d3b3f690d97 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://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
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.119.0"><link rel="shortcut icon" type=image/png
href=/i [...]
-"><meta property="og:type" content="article"><meta property="og:url"
content="https://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-15T10:31:28+08:00"><meta
itemprop=name content="走向 N [...]
-"><meta itemprop=datePublished content="2023-06-28T00:00:00+00:00"><meta
itemprop=dateModified content="2023-07-15T10:31:28+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&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://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-10-17T16:56:35+08:00"><meta
itemprop=name content="走向 N [...]
+"><meta itemprop=datePublished content="2023-06-28T00:00:00+00:00"><meta
itemprop=dateModified content="2023-10-17T16:56:35+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&Dubbo AOT 技术示例与原理讲解"><meta
name=twitter:description content="本文讲解了 GraavlVM 的基本工作原理,Native Image
的构建方式,如何使用 Dubbo AOT 构建打包静态化的 Dubbo 应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。
"><script async
src="https://www.googletagmanager.com/gtag/js?id=G-1TFHM5YBH0"></script>
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css
as=style><link
href=/scss/main.min.fe7176cbe3102a33d3e8c0c9cec61eb52508abd24a2cc1ae23ccf535a481ffde.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/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
应用,解决应用“冷启动”慢、内存占用高、预热时间长等问题。
@@ -209,7 +209,7 @@
<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><li
class="td-sidebar-nav__section-title td-sidebar-nav__secti [...]
<label
for=m-zh-cnblog20231007apache-dubbo-e9a696e4b8aa-nodejs-30-alpha-e78988e69cace6ada3e5bc8fe58f91e5b883-check><a
href=/zh-cn/blog/2023/10/07/apache-dubbo-%E9%A6%96%E4%B8%AA-node.js-3.0-alpha-%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnblog20231007apache-dubbo-e9a696e4b8aa-nodejs-30-alpha-e78988e69cace6ada3e5bc8fe58f91e5b883><span>Apache
Dubbo 首个 Node.js 3.0-alpha 版本正式发布</span></a></label></li><li cla [...]
-<label
for=m-zh-cnblog20231007web-e6b58fe8a788e599a8e9a1b5e99da2e4b99fe883bde8aebfe997aedubbogrpce5beaee69c8de58aa1dubbo-js-alphae78988e69cace6ada3e5bc8fe58f91e5b883-check><a
href=/zh-cn/blog/2023/10/07/web-%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A1%B5%E9%9D%A2%E4%B9%9F%E8%83%BD%E8%AE%BF%E9%97%AEdubbogrpc%E5%BE%AE%E6%9C%8D%E5%8A%A1dubbo-js-alpha%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnblog20231007web-e6b58fe8a7 [...]
+<label
for=m-zh-cnblog20231007web-e6b58fe8a788e599a8e9a1b5e99da2e4b99fe883bde8aebfe997aedubbogrpce5beaee69c8de58aa1dubbo-js-alphae78988e69cace6ada3e5bc8fe58f91e5b883-check><a
href=/zh-cn/blog/2023/10/07/web-%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A1%B5%E9%9D%A2%E4%B9%9F%E8%83%BD%E8%AE%BF%E9%97%AEdubbogrpc%E5%BE%AE%E6%9C%8D%E5%8A%A1dubbo-js-alpha%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnblog20231007web-e6b58fe8a7 [...]
我们以一个典型的 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><profile></span>
</span></span><span style=display:flex><span> <span
style=color:#268bd2><id></span>native<span
style=color:#268bd2></id></span>
diff --git a/zh-cn/blog/index.xml b/zh-cn/blog/index.xml
index 27752eb5887..5bbe0d0ec4f 100644
--- a/zh-cn/blog/index.xml
+++ b/zh-cn/blog/index.xml
@@ -2884,7 +2884,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -2915,7 +2915,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>
diff --git a/zh-cn/blog/integration/index.xml b/zh-cn/blog/integration/index.xml
index 597c9a87b9a..8995850c1d3 100644
--- a/zh-cn/blog/integration/index.xml
+++ b/zh-cn/blog/integration/index.xml
@@ -165,7 +165,7 @@
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -196,7 +196,7 @@
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index 655ac6ef589..1ae17625b62 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -2884,7 +2884,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -2915,7 +2915,7 @@ dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index dfe7d370245..cefa09f8f42 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://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://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ 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://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://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ No newline at end of file
diff --git a/zh-cn/tags/graalvm/index.xml b/zh-cn/tags/graalvm/index.xml
index a65337021ff..ea694a13cfb 100644
--- a/zh-cn/tags/graalvm/index.xml
+++ b/zh-cn/tags/graalvm/index.xml
@@ -17,7 +17,7 @@
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -48,7 +48,7 @@
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>
diff --git a/zh-cn/tags/java/index.xml b/zh-cn/tags/java/index.xml
index 4c29178b1c6..29155a860b8 100644
--- a/zh-cn/tags/java/index.xml
+++ b/zh-cn/tags/java/index.xml
@@ -17,7 +17,7 @@
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -48,7 +48,7 @@
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>
diff --git a/zh-cn/tags/native-image/index.xml
b/zh-cn/tags/native-image/index.xml
index 3a6538a78a0..710259a6281 100644
--- a/zh-cn/tags/native-image/index.xml
+++ b/zh-cn/tags/native-image/index.xml
@@ -173,7 +173,7 @@
<ul>
<li><strong>首先是启动速度问题,Java
冷启动的耗时是比较长的</strong>。这对于Serverless需要快速弹起的场景是一个非常大的挑战,因为 Java
应用的拉起时间可能是秒、数十秒级别的;</li>
<li><strong>第二点,Java应用往往都需要一定的预热时间,才能达到最佳的性能状态</strong>,刚刚拉起的应用如果分配比较大的流量是不合适的,往往会出现请求超时、资源占用过高等问题,这就进一步拉长了
Java 应用的有效拉起时间;</li>
-<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并补匹配;</li>
+<li><strong>第三点是 Java
应用对运行环境的要求,它往往需要较大的内存、计算资源</strong>,而这些真正分配给业务自身的并不多,都消耗在一些JVM运行时上,这与用云降本提效的目标并不匹配;</li>
<li><strong>最后,Java应用打出来的包或者镜像也是非常大</strong>,从总体上也影响存储、拉取的效率。</li>
</ul>
<p>接下来,我们具体看一下针对 Java 应用所面临的这些问题, GraalVM 这样一种打包和运行时技术是如何解决的。</p>
@@ -204,7 +204,7 @@
<li>安全程度更高</li>
</ul>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-advantages.png"
alt="image.png"></p>
-<p>总结起来就是这里的关键几项:更快的启动个速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在
Sererless 等云计算应用场景中面临的突出问题。</p>
+<p>总结起来就是这里的关键几项:更快的启动速度、更少的资源占用、更小的安全漏洞风险、更紧凑的二进制包体积。解决 Java 应用在 Sererless
等云计算应用场景中面临的突出问题。</p>
<h2 id="graalvm-native-image-的基本原理与使用">GraalVM Native Image 的基本原理与使用</h2>
<p>接下来,我们看一下 GraalVM 的基本使用方式,首先,需要安装 native-image
需要的相关基础依赖,根据不同的操作系统环境会有所差异,接下来可以使用 GraalVM JDK 下载器下载
native-image。都安装好之后,第二步,就可以使用 native-image 命令编译和打包 Java 应用了,输入可以是 class
文件、jar文件、Java模块等,最终打包为一个可独立运行的可执行文件,比如这里的 HelloWorld。另外,GraalVM 也提供了对应的
Maven和Gradle构建工具插件,让打包过程更容易。</p>
<p><img
src="https://dubbo.apache.org/imgs/blog/2023/6/graalvm/graalvm-principal.png"
alt="image.png"></p>