Skip to content

Commit b191b2b

Browse files
committed
supplement description about initializer and handler; remove useless class loader config
1 parent 125367b commit b191b2b

File tree

2 files changed

+15
-24
lines changed

2 files changed

+15
-24
lines changed

readme-java.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ AppCDS技术对于Custom Class Loader加载的类优化效果并不明显。为
1616
## 本工具原理说明
1717
当您执行s deploy时,s工具会自动首先执行您配置的pre-deploy,进而调用到本工具。本工具会自动在您的云账号中创建一个辅助函数,这个辅助函数会被调用并生成加速相关的文件,然后会下载加速相关的文件到您的本地,这些文件会随同您的代码一起被部署到云上创建正式函数。
1818

19+
辅助函数和您定义在s.yaml中的函数相比,initializer完全相同,handler不同。您定义的函数的handler是您的业务逻辑,而辅助函数的handler则是用于生成和下载加速文件相关的逻辑,和您的业务逻辑完全无关。在辅助函数的handler执行之前,您的业务函数的initializer会先执行。为了提升启动加速的效果,建议您把类加载和初始化工作放到initializer中。更具体的概念可以参考函数计算 [官方文档](https://help.aliyun.com/document_detail/157704.htm)
20+
1921
当您调用调用正式函数时,我们会检测您的代码目录中是否存在加速相关文件,如果存在则自动打开启动加速特性;如果代码目录中不存在启动加速相关相关文件,则会以常规方式正常执行,不会对影响您的业务逻辑。
2022

2123
需要说明的是,本工具自动创建辅助函数并调用,会导致额外的费用,价格和正式函数相同。因为仅调用1次或者数次,可以认为费用很低。
@@ -26,19 +28,19 @@ AppCDS技术对于Custom Class Loader加载的类优化效果并不明显。为
2628
## 如何使用?
2729
目前 本工具 与 [Serverless Devs](https://www.serverless-devs.com/zh-cn) 实现了集成,可以通过 Serverless Devs 的 `s cli` 直接使用,具体步骤如下:
2830

29-
1.`s.yaml` 中的 service actions 中添加 `pre-deploy` ,配置 run 命令为 `s cli pgo java --module changeme`
30-
![](https://img.alicdn.com/imgextra/i3/O1CN01BpvXUa20wCk3Evl8R_!!6000000006913-0-tps-953-1159.jpg)
31+
1.`s.yaml` 中的 service actions 中添加 `pre-deploy` ,配置 run 命令为 `s cli pgo --lang=java --module=helloworld`
32+
![](https://img.alicdn.com/imgextra/i4/O1CN01kCaJUg27jZ7j5Gv4x_!!6000000007833-0-tps-964-1171.jpg)
3133

3234
2.`s.yaml` 中的function的配置中增加2个环境变量,这两个变量的名字和值是固定的,请不要修改:
3335
- BOOTSTRAP_WRAPPER: '/code/quickstart.sh'
3436
- SRPATH: '/code/runtime.data.share'
35-
![](https://img.alicdn.com/imgextra/i2/O1CN01LemC4d28CsTHuMmbp_!!6000000007897-0-tps-934-1189.jpg)
37+
![](https://img.alicdn.com/imgextra/i1/O1CN018MFK1C1dI8w7IUIjg_!!6000000003712-0-tps-926-1168.jpg)
3638

3739
3.`s.yaml` 中的 runtime 改为 `java11`
38-
![](https://img.alicdn.com/imgextra/i1/O1CN01hMBFwK1gBDnOtzvci_!!6000000004103-0-tps-939-1182.jpg)
40+
![](https://img.alicdn.com/imgextra/i4/O1CN010lxGXP1aYDzsuc2Lq_!!6000000003341-0-tps-949-1169.jpg)
3941

4042
4.`s.yaml` 中为`service`配置logConfig和role,便于把函数产生的日志发送到您的SLS Logstore中
41-
![](https://img.alicdn.com/imgextra/i3/O1CN01ydGYB71ODoxe57at6_!!6000000001672-0-tps-953-1178.jpg)
43+
![](https://img.alicdn.com/imgextra/i2/O1CN018orbW21GA8r623ARX_!!6000000000581-0-tps-942-1176.jpg)
4244

4345
5. 部署函数
4446
```shell

resources/classloader-config.xml

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,30 @@
88
<appendJarPathsAsName>false</appendJarPathsAsName> <!-- if the klass is a URLClassLoader, `true` will add its JarPaths to its name. or, the `true` will be ignored. -->
99
<uniqueName></uniqueName>
1010
</classloader>
11+
1112
<classloader>
12-
<klass>com.alibaba.halo.container.manage.ContainerClassLoaderWrapper</klass>
13-
<uniqueName>ContainerClassLoaderWrapper_0</uniqueName> <!-- if you make sure this classloader is a singleton, fill it with a name. Or, delete it or fill nothing. -->
14-
</classloader>
15-
<classloader>
16-
<klass>com.alibaba.halo.container.core.ContainerClassLoader</klass>
17-
<appendJarPathsAsName>true</appendJarPathsAsName>
13+
<klass>com.taobao.pandora.boot.loader.LaunchedURLClassLoader</klass>
14+
<uniqueName>Taobao_LaunchedURLClassLoader_0</uniqueName>
1815
</classloader>
16+
1917
<classloader>
2018
<klass>org.apache.catalina.loader.ParallelWebappClassLoader</klass>
2119
<uniqueName>parallelTomcatLoader_0</uniqueName>
2220
</classloader>
21+
2322
<classloader>
2423
<klass>org.apache.catalina.loader.WebappClassLoader</klass>
2524
<uniqueName>webTomcatLoader_0</uniqueName>
2625
</classloader>
27-
<classloader>
28-
<klass>com.alibaba.glaucus.plugin.loader.SolutionClassLoader</klass>
29-
<appendJarPathsAsName>true</appendJarPathsAsName>
30-
</classloader>
31-
<classloader>
32-
<klass>com.alibaba.glaucus.plugin.loader.PluginClassLoader</klass>
33-
<appendJarPathsAsName>true</appendJarPathsAsName>
34-
</classloader>
26+
3527
<classloader>
3628
<klass>org.springframework.boot.loader.LaunchedURLClassLoader</klass>
3729
<uniqueName>LaunchedURLClassLoader_0</uniqueName>
3830
</classloader>
31+
3932
<classloader>
40-
<klass>com.taobao.pandora.boot.loader.LaunchedURLClassLoader</klass>
41-
<uniqueName>Taobao_LaunchedURLClassLoader_0</uniqueName>
42-
</classloader>
43-
<classloader>
44-
<appendJarPathsAsName>true</appendJarPathsAsName>
4533
<klass>java.net.FactoryURLClassLoader</klass>
34+
<appendJarPathsAsName>true</appendJarPathsAsName>
4635
</classloader>
4736

4837
<classloader>

0 commit comments

Comments
 (0)