编辑
2024-05-07
摘录
00

目录

thin模式的意义
jar外挂包
(乌龙)Thin模式下资源存在初次预热的问题
升级dubbo 3.2.9版本
创建发布版本
安装release-cli

thin模式的意义

使用thin模式降低spring boot包大小。 也就是说,依赖的那些jar不打到fatjar里。从而把动辄100M以上的包,降低到1M的规模。

为什么要做这个事儿呢?实际上我们项目里依赖的那些jar,版本是不会经常变动的。每次打包都带上,导致我们发布过程要一直带了一些很重的制品大小。 所以thin模式还是有价值和意义的。

其实在很早的时候,我们使用tomcat部署多个war,会把一些公用的jar,比如spring,直接丢到tomcat的lib下,这样这些war就不要带spring的那些依赖jar了,从而实现了war包瘦身的目的。

jar外挂包

其实我们可以进一步思考,我们依赖的这些jar,有一些是业务相关的,有一些是技术相关的,业务相关的可能会变动,特别是哪些二方库,比如我们订单依赖了支付接口的jar,支付发生了升级。而我们依赖的APM之类的jar,一是不会频繁升级,二是即使它们不存在,也不会影响我们系统的功能。那么是不是可以把一些技术性的jar,从springboot fatjar里移出去。

这就是外挂包的意义所在,尽量降低制品包大小,同时来平衡技术依赖和业务依赖的不同更新发布频率。外挂包是一个指定的单独目录。

1、里面正常是空的,但是可以放一些jar,运行期加载。

2、这里的jar一般需要是非业务功能的,独立升级维护。

3、如果一个jar的不同版本,同时存在与外挂包,以及fatjar,默认外挂包优先。

4、在开发测试环境,可以通过外挂包来测试新版本的业务功能,而不需要重新发布。

(乌龙)Thin模式下资源存在初次预热的问题

thin模式下,初次发起网络请求,才会初始化加载,之后会缓存:

最新发现,在debug模式都有加载,但是jar包运行都会不加载

image.png

全量jar模式下,启动即加载了:

image.png

升级dubbo 3.2.9版本

image.png

创建发布版本

安装release-cli

sh
# 以 root 用户登录服务器 # 删除现有的 release-cli 文件 sudo rm -f /usr/local/bin/release-cli # 重新下载 release-cli sudo curl -L --output /usr/local/bin/release-cli https://gitlab.com/gitlab-org/release-cli/-/releases/v0.18.0/downloads/bin/release-cli-linux-amd64 # 设置执行权限 sudo chmod +x /usr/local/bin/release-cli # 检查文件内容 file /usr/local/bin/release-cli # 切换到 ctm 用户并验证 sudo -u ctm -i which release-cli release-cli --version

image.png

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Golovin

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!