微服务框架 spring-cloud 绝非你唯一的选择

Spring Cloud全家桶的构建是建立在Spring Boot基础上的,特别上容器化技术已经成熟,以快而著称,号称3秒内启动。其实企业级的docker容器一般内存低于4g(快),如何解决SpringBoot巨耗内存,构建慢,启动也很慢,这确实是每个架构师一个很值得思考的问题!当然,Spring Cloud的工艺水平有多优秀,更新速度之快,稳定性,成熟度,早已在很多大型的企业级的应用中得到验证。本文将从更开放的视角看更好的解决方案。

1. Spring Cloud 之殇

社区里很多人都在反馈Spring Boot,构建比较慢,打包完成后JAR会大约50M,启动比较慢(Started Application in 10.153 seconds),启动之后比较占内存(内存占用304M)。

压测30秒,内存占用1520M(1.5G),CPU上升到321%

而SprintCloud引入的组件会相对多一些,那时消耗的资源也会相对更多一些。

2. Vert.x

背靠Eclipse的Eclipse Vert.x是一个用于在JVM上构建响应式应用程序的工具包。Java能做的,Vert.x都能做。Vert.x底层基于Netty,提供了丰富的IO类库,支持多种网络应用开发。Vert.x模块提供了大量微服务的组件,在很多人眼里是一种微服务架构的选择。

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

Vert.x 构建非常快,打包完成后JAR大约7M左右,启动时间不到1秒(Started Vert.x in 0.274 seconds),启动之后内存占用65M

压测30秒,内存占139M,CPU占2.1%,确实很强悍吧!

3. Micronaut

  • Grails团队新宠;
  • 可以用 Java、Groovy 和 Kotlin 编写的基于微服务的应用程序;
  • 相比SprintBoot已经比较全面;
  • 性能较优,编码方式与SprintBoot比较类似;
  • 启动时间和内存消耗方面比其他框架更高效;
  • 多语言;
  • 依赖注入;
  • 内置多种云本地功能;

4. Helidon

Oracle推出新的开源框架,受NodeJS和其他Java框架的启发,Helidon的Web服务器是一个异步、反应性API,运行在Netty之上。

5. Javalin

  • 上手极为容易,非常适合Kotlin和Java程序员;
  • 灵活,可以兼容同步和异步两种编程思路;
  • 有KOA的影子
  • 只有大约2000行源代码,源代码足够简单,可以理解和修复;
  • 嵌入式服务器Jetty;

6. SparkJava

  • 轻量级Java Web框架,构建在Jetty Web服务器上;
  • 基于Java 8 lambda表达式构建,上手极为容易,容易地创建REST API或Web应用程序

你可能感兴趣的:(spring源码,玩转spring,cloud)