1. 首页
  2. IT资讯

惊呆了,Spring Boot 居然这么耗内存

“u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002FRbBH7dh8YhRwXK” img_width=”640″ img_height=”18″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003E作者 | 襄垣u003Cu002Fpu003Eu003Cpu003Ejuejin.imu002Fpostu002F5c89f266f265da2d8763b5f9u003Cu002Fpu003Eu003Cpu003ESpring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为Spring Boot太重。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003Eu003Cstrongu003EJAVA系微服务框架u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Ch1 toutiao-origin=”h2″u003Eu003Cstrongu003ENo1-Spring Cloudu003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E介绍u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cpu003E有Spring大靠山在,更新、稳定性、成熟度的问题根本不需要考虑。在JAVA系混的技术人员大约都听说过Spring的大名吧,所以不缺程序员……,而且这入手的难度十分低,完全可以省去一个架构师。u003Cu002Fpu003Eu003Cpu003E但是,你必然在服务器上付出:u003Cu002Fpu003Eu003Cblockquoteu003Eu003Culu003Eu003Cliu003Eu003Cpu003E至少一台“服务发现 ”的服务器;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E可能有一个统一的网关Gateway;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E可能需要一个用于“分布式配置管理”的配置中心;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E可能进行“服务追踪”,知道我的请求从哪里来,到哪里去;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E可能需要“集群监控”;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E项目上线后发现,我们需要好多服务器,每次在集群中增加服务器时,都感觉心疼;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cu002Fblockquoteu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E压测30秒u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cstrongu003E压测前的内存占用u003Cu002Fstrongu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdWqbAEHz1sv” img_width=”1080″ img_height=”357″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003E如图,内存占用304M。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E压测时的内存占用u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdWqt93ko3VY” img_width=”1080″ img_height=”357″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003E如图,内存占用u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-5″u003E152u003Cu002Fiu003E0M(1.5G),CPU上升到321%u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E概览u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdWr8DeWO3jI” img_width=”1080″ img_height=”896″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E总结u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cpu003E一个Spring Boot的简单应用,最少1G内存,一个业务点比较少的微服务编译后的JAR会大约50M;而Spring Cloud引入的组件会相对多一些,消耗的资源也会相对更多一些。u003Cu002Fpu003Eu003Cpu003E启动时间大约10秒左右: Started Application in 10.u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-2″u003E153u003Cu002Fiu003E seconds (JVM running for 10.915)u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003Eu003Cstrongu003EJAVA系响应式编程的工具包Vert.xu003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E介绍u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cpu003E背靠Eclipse的Eclipse Vert.x是一个用于在JVM上构建响应式应用程序的工具包。定位上与Spring Boot不冲突,甚至可以将Vert.x结合Spring Boot使用。众多Vert.x模块提供了大量微服务的组件,在很多人眼里是一种微服务架构的选择。u003Cu002Fpu003Eu003Cpu003E华为微服务框架Apache ServiceComb就是以Vert.x为底层框架实现的,在”基准测试网站TechEmpower”中,Vert.x的表现也十分亮眼。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E压测30秒u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cstrongu003E压测前的内存占用u003Cu002Fstrongu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdWrMHCXRLsQ” img_width=”1080″ img_height=”359″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003E如图,内存占用65M。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E压测时的内存占用u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdWrdHG0zsG4″ img_width=”1080″ img_height=”352″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003E如图,内存占u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-6″u003E139u003Cu002Fiu003EM,CPU占2.1%,给人的感觉似乎并没有进行压测。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E概览u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002FRbYdXUWD7VhNmk” img_width=”1080″ img_height=”868″ alt=”惊呆了,Spring Boot 居然这么耗内存” inline=”0″u003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003Eu003Cstrongu003E总结u003Cu002Fstrongu003Eu003Cu002Fh2u003Eu003Cpu003EVert.x单个服务打包完成后大约7M左右的JAR,不依赖Tomcat、Jetty之类的容器,直接在JVM上跑。u003Cu002Fpu003Eu003Cpu003EVert.x消耗的资源很低,感觉一个1核2G的服务器已经能够部署许多个Vert.x服务。除去编码方面的问题,真心符合小项目和小模块。git市场上已经出现了基于Vert.x实现的开源网关- VX-API-Gateway帮助文档u003Cu002Fpu003Eu003Cpu003Eu003Cemu003Ehttps:u002Fu002Fduhua.gitee.iou002Fvx-api-gateway-docu002Fu003Cu002Femu003Eu003Cu002Fpu003Eu003Cpu003E对多语言支持,很适合小型项目快速上线。u003Cu002Fpu003Eu003Cpu003E启动时间不到1秒:Started Vert.x in 0.274 seconds (JVM running for 0.274)u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003Eu003Cstrongu003EJAVA系其他微服务框架u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cstrongu003ESparkJavau003Cu002Fstrongu003Eu003Culu003Eu003Cliu003Eu003Cpu003Ejar比较小,大约10Mu003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E占内存小,大约30~60MB;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E性能还可以,与Spring Boot相仿;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cstrongu003EMicronautu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Culu003Eu003Cliu003Eu003Cpu003EGrails团队新宠;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E可以用 Java、Groovy 和 Kotlin 编写的基于微服务的应用程序;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E相比Spring Boot已经比较全面;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E性能较优,编码方式与Spring Boot比较类似;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E启动时间和内存消耗方面比其他框架更高效;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E多语言;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E依赖注入;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E内置多种云本地功能;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E很新,刚发布1.0.0u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cstrongu003EJavalinu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Culu003Eu003Cliu003Eu003Cpu003E上手极为容易;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E灵活,可以兼容同步和异步两种编程思路;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003EJAR小,4~5M;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E多语言;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E有KOA的影子;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E只有大约2000行源代码,源代码足够简单,可以理解和修复;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E符合当今趋势;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E多语言;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E嵌入式服务器Jetty;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cstrongu003EQuarkusu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Culu003Eu003Cliu003Eu003Cpu003E启动快;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003EJAR小,大约10M;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E文档很少;u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E如果喜欢本篇文章,欢迎转发、点赞。u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-1″u003E关注u003Cu002Fiu003E订阅号「Web项目聚集地」,回复「进群」即可进入无广告技术交流。u003Cu002Fpu003E”

原文始发于:惊呆了,Spring Boot 居然这么耗内存

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/18086.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code