翻到以前使用springboot写的星座类小程序,突发奇想使用go重写逻辑进行对比实践一下,验证两种编程语言实际场景中的差异性。
目前已经将小程序的接口切换为go语言的服务,java服务后续将只处理管理端和小程序所需第三方数据的获取。
下方是小程序码,有兴趣可以看看。
技术准备
单台2C2G云服务器
docker v19 部署
java使用springboot框架
golang的gin框架
redis 6.2.6
mysql 5.7
对比数据
star-test是go服务 占用不足10M
cons-server-07-21 是java服务,占用300+M
小结
相同的业务逻辑,更高的并发性能,却只需要1/30的内存。小公司或许感受不到震撼,但是大型C端系统需要超高并发和异地多活的架构系统都是需要几十、上百的服务支撑,如此下来节省的服务器成本都是惊人的费用。
虽然java也是编译型语言,但却依赖jvm解释运行,并非像go一样编译后直接在系统上运行,没有想到运行所用内存相差巨大。
因为go的协程,系统性能自然不需要怀疑,后续再进行压测验证。