大家好,我是老赵

概述

SprintBoot总体来说,搭建还是比较容易的,特别是SpringCloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的SprintBoot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为SprintBoot太重。

JAVA系微服务框架No1-Spring Cloud

>介绍

有Spring大靠山在,更新、稳定性、成熟度的问题根本不需要考虑。在JAVA系混的技术人员大约都听说过Spring的大名吧,所以不缺程序员……,而且这入手的难度十分低,完全可以省去一个架构师。但是,你必然在服务器上付出:

  • 至少一台“服务发现 ”的服务器;

  • 可能有一个统一的网关Gateway;

  • 可能需要一个用于“分布式配置管理”的配置中心;

  • 可能进行“服务追踪”,知道我的请求从哪里来,到哪里去;

  • 可能需要“集群监控”;

项目上线后发现,我们需要好多服务器,每次在集群中增加服务器时,都感觉心疼;

>压测30秒

~压测前的内存占用

如图,内存占用304M。

~压测时的内存占用

如图,内存占用1520M(1.5G),CPU上升到321%

~概览

~总结

一个SprintBoot的简单应用,最少1G内存,一个业务点比较少的微服务编译后的JAR会大约50M;而SprintCloud引入的组件会相对多一些,消耗的资源也会相对更多一些。

启动时间大约10秒左右: Started Application in 10.153 seconds (JVM running for 10.915)

JAVA系响应式编程的工具包Vert.x

>介绍

背靠Eclipse的Eclipse Vert.x[1]是一个用于在JVM上构建响应式应用程序的工具包。定位上与SprintBoot不冲突,甚至可以将Vert.x结合SprintBoot使用。众多Vert.x模块提供了大量微服务的组件,在很多人眼里是一种微服务架构的选择。

华为微服务框架Apache ServiceComb[2]就是以Vert.x为底层框架实现的,在"基准测试网站TechEmpower"中,Vert.x的表现也十分亮眼。

>压测30秒

~压测前的内存占用

如图,内存占用65M。

~压测时的内存占用

如图,内存占139M,CPU占2.1%,给人的感觉似乎并没有进行压测。

~概览

~总结

Vert.x单个服务打包完成后大约7M左右的JAR,不依赖Tomcat、Jetty之类的容器,直接在JVM上跑。

Vert.x消耗的资源很低,感觉一个1核2G的服务器已经能够部署许多个Vert.x服务。除去编码方面的问题,真心符合小项目和小模块。git市场上已经出现了基于Vert.x实现的开源网关- VX-API-Gateway帮助文档[3] 对多语言支持,很适合小型项目快速上线。

启动时间不到1秒:Started Vert.x in 0.274 seconds (JVM running for 0.274)

JAVA系其他微服务框架

SparkJava

  • jar比较小,大约10M

  • 占内存小,大约30~60MB;

  • 性能还可以,与SprintBoot相仿;

Micronaut

  • Grails团队新宠;

  • 可以用 Java、Groovy 和 Kotlin 编写的基于微服务的应用程序;

  • 相比SprintBoot已经比较全面;

  • 性能较优,编码方式与SprintBoot比较类似;

  • 启动时间和内存消耗方面比其他框架更高效;

  • 多语言;

  • 依赖注入;

  • 内置多种云本地功能;

  • 很新,刚发布1.0.0

Javalin

  • 上手极为容易;

  • 灵活,可以兼容同步和异步两种编程思路;

  • JAR小,4~5M;

  • 多语言;

  • 有KOA的影子;

  • 只有大约2000行源代码,源代码足够简单,可以理解和修复;

  • 符合当今趋势;

  • 多语言;

  • 嵌入式服务器Jetty;

Quarkus

  • 启动快;

  • JAR小,大约10M;

  • 文档比较少,官方文档很丰富,DEMO也很多;

  • 适合云原生;

  • native后,毫秒级启动很吸引人,占用内存很小很小,消耗资源少,性能很棒。

作者:襄垣

来源:https://sourl.cn/f4CGsu

精彩推荐

1.为什么 DNS 根服务器只有 13 台?给中国一台真的很难吗?
2.IntelliJ IDEA 到期了?手把手教你免费获取正版产品用到2089年
3.官宣了:IntelliJ IDEA 彻底弃用 Log4j  !
4.SpringCloud 微服务架构,适合接私活(附源码)5.因为爬虫失控,CTO和程序员双双被判刑
6.甲方要求10W效果,一问预算就3千,程序员接私活项目现状
7.节后上班第一天公司要你用SpringBoot实现万能文件在线预览8.黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条新规约

点个在看少个 bug

再见笨重的SpringBoot,这个神器框架终于发布了!​相关推荐

  1. Springboot,SSM框架比较,区别

    百度搜 Springboot,SSM框架区别,大多说的都是 1.springboot一个应用是一个可执行jar 2.将原有的xml配置,简化为java配置 他们说的确实没错,可是根本没有说到本质,百度 ...

  2. SpringBoot集成MyBatis-Plus框架

    1.说明 本文介绍Spring Boot集成MyBatis-Plus框架, 重点介绍需要注意的地方, 是SpringBoot集成MyBatis-Plus框架详细方法 这篇文章的脱水版, 主要是三个步骤 ...

  3. SpringBoot集成Log4j2框架

    1.说明 本文详细介绍Spring Boot集成Log4j2框架的方法, 基于已经创建好的Spring Boot工程, 由于Spring Boot默认使用的是Logback框架, 需要先排除掉Logb ...

  4. SpringBoot集成MyBatis-Plus框架详细方法

    1.说明 本文详细介绍Spring Boot集成MyBatis-Plus框架的方法, 使用MySQL数据库进行测试, 包括完整的开发到测试步骤, 从一开始的Spring Boot工程创建, 到MySQ ...

  5. 【Java从0到架构师】交错的日志系统、SpringBoot 集成日志框架

    交错的日志系统.SpringBoot 集成日志框架 交错复杂的日志系统① - 多个项目实现 SLF4J 门面 交错复杂的日志系统② - 统一底层实现为 Logback 交错复杂的日志系统③ - 统一底 ...

  6. SpringBoot后端项目框架搭建

    SpringBoot后端项目框架搭建 本节内容服务于SpringBoot + Vue 搭建 JavaWeb 增删改查项目. 工具安装 电脑已安装\配置如下工具: IDEA.jdk.MySQL及其可视化 ...

  7. SpringBoot 集成FluentMyBatis 框架之集成分页功能

    本文基于上一篇:SpringBoot 集成FluentMyBatis 框架之完善 SpringBoot 集成FluentMyBatis 框架之集成分页功能 FluentMyBatis 官方分页 官方提 ...

  8. springboot+elasticsearch+bboss框架集成遇到的坑

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.为什么要用bboss? 二.遇到的坑 1.kibana.head页面查询结果不一致 2.head查询结果与bbos ...

  9. SpringBoot后台管理系统框架

    SpringBoot后台管理系统框架 SpringBoot后台管理系统功能介绍 登录 注册 用户列表和添加功能 只是个框架 实现了shiro权限控制, 详细的shiro使用 一个模板项目系统 只有少量 ...

最新文章

  1. Spring5源码 - 00 IOC容器创建_前期准备
  2. 利用DAC(Data-tier Application)实现数据库结构迁移
  3. ?php query_posts(cat)?,query_posts()函数 (wordpress日志调用)
  4. Java 基本类型相互转换
  5. 【Python】WindowsError的错误代码详解
  6. 计算机新入学教案,计算机应用 新教案(1-6周).doc
  7. 在STM32CubeMX生成的MDK5工程上添加RT-Thread Nano后双击工程名无法打开.map文件的解决方法
  8. Solr入门——安装
  9. spy 控件没有名字_PyQt5学习笔记(十一)高级容器控件
  10. [php] 解析JSON字符串
  11. 游戏音效是用什么软件做的?
  12. xml网站地图在线生成制作工具
  13. 4、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——后台管理界面
  14. stm32关于can线的双机通信实验
  15. 《嵌入式系统 – NUC980 IoT应用开发实战指南(基于RT-Thread系统)》第3章 NUC980 IoT I2C实践
  16. 梅特勒托利多xk3124电子秤说明书_梅特勒托利多称重仪表XK3124 B520
  17. Vue项目实战:订单列表页面实现
  18. 一个上海同济大学教师的工资单(zt tianya)
  19. android 按钮带图标 阴影_Android Material Design系列之FloatingActionButton和Snackbar
  20. 当女生说没衣服穿时。。。。

热门文章

  1. __attribute__中的section的理解
  2. 为啥战术演练的时候还举着小红旗?
  3. 阿拉德之怒显示服务器错误,阿拉德之怒网络异常怎么办_阿拉德之怒网络繁忙解决方法介绍_玩游戏网...
  4. 英伟达显卡 NVIDIA
  5. 都市白领们值得收藏-大病之前的先兆,请有心人收藏分享一下!
  6. 使用Vue-Router 2实现路由功能
  7. 4.8A可调USB限流开关芯片,带短路保护
  8. 第二十一篇 数据增强
  9. java简单的图书管理系统(只用java代码不用数据库和可视化界面,一个管理员表和图书表)
  10. python红楼梦_用Python读红楼