Spring项目改造Solon版,使用体验,对比
对于有些人可能并不了解,在官方概述中,称其是新一代Java企业级应用开发框架,从零开始构建,有自主的标准规范与开放生态。近16万行代码。并有更快、更小、更简单的特点什么样的Java项目用Solon好?按正常的需求选择即好。以下为参考:信创需要国产化,应该用 Solon 或者 Solon Cloud(有案例)军工项目要国产化,应该用 Solon 或者 Solon Cloud(有案例)嵌入式设备,内存
概述
对于Solon有些人可能并不了解,在官方概述中,称其是新一代Java企业级应用开发框架,从零开始构建,有自主的标准规范与开放生态。近16万行代码。

并有更快、更小、更简单的特点

什么样的Java项目用Solon好?
按正常的需求选择即好。以下为参考:
-
信创需要国产化,应该用 Solon 或者 Solon Cloud(有案例)
-
军工项目要国产化,应该用 Solon 或者 Solon Cloud(有案例)
-
嵌入式设备,内存有限,算力差,可以用 Solon 或者 Solon Native(有案例)
-
客户的希望你内存更少,可以用 Solon (有案例)
-
别的框架用腻了,可以用 Solon (有案例)
-
有新系统开发想尝新的框架,可以用 Solon (有案例)
-
老系统要轻量化改造,可以用 Solon(有案例)
官网还有一些关于Solon的很多文章,包含Solon生态的唱想,可以一看
开始
第一次了解Solon并不是直接从想替代Spring生态的想法开始的,毕竟我们长谈起Java与其他语言的对比,常常会讲Spring,Spring的生态并不是那么容易被替代的。所以我第一次了解Solon是因为其他框架,还是LiteFlow等其他框架,在其官网上都会Solon环境的说明,也是由此了解到了Solon。


最近又拾起Solon的原因还得归功于大火的MCP,其发布了https://www.oschina.net/news/346854关于把WebApi转为MCP-Server的文章,然后又看了一些其Solon-AI的相关介绍,挺感兴趣了,想尝试一下。
顺便体验一下Solon真的有官方讲的那么好吗?快?小?简单?
别人对比可能就只是写一个demo,随便一两个接口,试一下就好了,但是,我不,也许是我比较能折腾,我直接全面做一个Solon版,更细致地对比。
也是在全面从Spring生态替换Solon生态中了解了较为完整的Spring/Solon生态都有哪些内容。
https://github.com/wnhyang/coolGuard,这次就是将此项目重构,以下是部分的变更。
对比
mvn打包
mvn clean install两个项目分别执行后对比
Spring:149MB,10.3s左右
Solon:102MB,9.6s左右
当然这点对比并不是非常严谨,因为在改Solon时我缺少引入了一两个包,但从整体来讲确实要小一些。
dockerfile打包
构建打包时间
Spring版

Solon版

当然流水线的执行时间参考价值不大
镜像大小对比如下,0.1的是Spring版的,1.0的是Solon版的,小了那么一点。

压测
对比方法,部署完成后,清空redis缓存,然后发三笔请求预热,然后开始压测。
100用户,爬坡2分钟,总运行5分钟。
这里必须要提一下,第一次测试时因为接口请求参数的问题,效果都很差,之后调整后就好了很多了。
接口参数改了什么呢?我查看了之前未改参数前的,主要耗时都集中在指标计算上,我测试环境之配置了8条指标,而且都是关于payerAccount和payeeAccount字段的,之前的接口这是固定的,也就是说重复的在计算同一个用户的相同指标,根据项目的指标计算原理,指标数据集中在几个key中,会存在大key问题,也是压测上不去的主要原因。对应到生产现实中同一个用户5分钟内同样的请求发了近1w笔,不大可能。所以之后又重新调整了一下,重新出了下面的对比。


另外再提一点,既然是对比就要做好控制变量,因为资源有限,其实本身就是一台机器上同时运行着MySQL、Redis、Kafka、Java应用,所以在对比中,只看相对就可以,不用看绝对值。
Solon版

测试结束后,redis

服务器监控,大约在14.16-14.21左右的5分钟

Spring版
先清理redis数据,发三笔预热,然后开始,结果如下



整体对比差别不大,应该还得上压力。
小结

Solon的生态要比想象中更丰富,可以讲完全可以替代Spring生态,而且使用上真的很简单,上手极其容易。替换的难易程度取决于对于Spring生态的依赖程度,大概是我的项目相对简单,所以很容易就做完了,但是对于复杂的项目想要完全从Spring到Solon还是要评估一下再决定的。
在对比上整体上严谨行还有待评估,肯定有不足的地方,但是Solon表现好想确实是好一些。
我特别喜欢Solon官网的这部分,《中国这么多 Java 开发者,应该诞生出生态级应用开发框架》、《Solon 生态的唱想》。fighting!


重点
下一篇使用solon-ai做自己的mcp-server,对接LLM示例
更多推荐
所有评论(0)