微服务框架:如果不用 Spring Boot,还可以选择谁?(4)

简介: 微服务框架:如果不用 Spring Boot,还可以选择谁?

内存使用情况

对于每个微服务,确定了以下内容:


通过-Xmx参数,指定微服务所需的堆内存大小

通过负载测试服务健康的请求(能够响应不同的请求)

通过负载测试50 个用户 * 1000 个的请求

通过负载测试500 个用户 * 1000 个的请求

堆内存只是为应用程序分配的总内存的一部分。例如,如果要测量总体内存使用情况,可以参考本指南。


对于负载测试,使用了Gatling和Scala脚本 。


1、负载生成器和被测试的服务在同一台机器上运行(Windows 10、3.2 GHz 四核处理器、24 GB RAM、SSD)。


2、服务的端口在 Scala 脚本中指定。


3、通过负载测试意味着微服务已经响应了所有时间的所有请求。


image.png

需要注意的是,所有微服务都使用 Netty HTTP 服务器。


结论

通过上文,我们所需的功能——一个带有 HTTP API 的简单服务和在 MSA 中运行的能力——在所有考虑的框架中都取得了成功。


是时候开始盘点并考虑他们的利弊了。


Helidon标准版

优点

创建的应用程序,只需要一个注释(@JvmStatic)


缺点

开发所需的一些组件缺少开箱即用(例如,依赖注入和与服务发现服务器的交互)


Helidon MicroProfile

微服务还没有在这个框架上实现,所以这里简单说明一下。


优点

1、Eclipse MicroProfile 实现


2、本质上,MicroProfile 是针对 MSA 优化的 Java EE。因此,首先你可以访问各种 Java EE API,包括专门为 MSA 开发的 API,其次,你可以将 MicroProfile 的实现更改为任何其他实现(例如:Open Liberty、WildFly Swarm 等)


Ktor

优点

1、轻量级的允许你仅添加执行任务直接需要的那些功能


2、应用参数所有参数的良好结果


缺点

1、依赖于Kotlin,即用其他语言开发可能是不可能的或不值得的


2、微框架:参考Helidon SE


3、目前最流行的两种 Java 开发模型(Spring Boot/Micronaut)和 Java EE/MicroProfile)


4、中没有包含该框架,这会导致:


难以寻找专家


由于需要显式配置所需的功能,因此与 Spring Boot 相比,执行任务的时间有所增加


Micronaut

优点

1、AOT如前所述,与 Spring Boot 上的模拟相比,AOT 可以减少应用程序的启动时间和内存消耗


2、类Spring开发模式有 Spring 框架经验的程序员不会花太多时间来掌握这个框架


3、Micronaut for Spring可以改变现有的Spring Boot应用程序的执行环境到Micronaut中(有限制)


Quarkus

优点

1、Eclipse MicroProfile 的实现


2、该框架为多种 Spring 技术提供了兼容层:DI、 Web、Security、Data JPA


Spring Boot

优点

1、平台成熟度和生态系统对于大多数日常任务,Spring的编程范式已经有了解决方案,也是很多程序员习惯的方式。此外,starter和auto-configuration的概念简化了开发


2、专家多,文档详细


我想很多人都会同意 Spring 在不久的将来仍将是 Java/Kotlin开发领域领先的框架。


缺点

应用参数多且复杂但是,有些参数,如前所述,你可以自己优化。还有一个Spring Fu项目的存在,该项目正在积极开发中,使用它可以减少参数。

Helidon SE 和 Ktor 是 微框架,Spring Boot 和 Micronaut 是全栈框架,Quarkus 和 Helidon MP 是 MicroProfile 框架。微框架的功能有限,这会减慢开发速度。


我不敢判断这个或那个框架会不会在近期“大更新”,所以在我看来,目前最好继续观察,使用熟悉的框架解决工作问题。


同时,如本文所示,新框架在应用程序参数设置方面赢得了 Spring Boot。如果这些参数中的任何一个对你的某个微服务至关重要,那么也许值得关注。但是,我们不要忘记,Spring Boot 一是在不断改进,二是它拥有庞大的生态系统,并且有相当多的 Java 程序员熟悉它。此外,还有未涉及的其他框架:Vert.x、Javalin 等,也值得关注。


译文:https://www.kubernetes.org.cn/9526.html


原文:https://dzone.com/articles/not-only-spring-boot-a-review-of-alternatives



相关文章
|
9月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
688 2
|
9月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
984 117
|
10月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
8月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
8月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
8月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
739 8
|
9月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
858 1
|
11月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
1014 1
|
10月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1726 0