Java:8个用于云原生世界的Java框架
ccwgpt 2025-04-07 12:44 29 浏览 0 评论
云原生Java框架旨在支持可独立安装和重新启动的微服务群,它们通常在Docker或Podman等容器中发布,以实现最快的构建和安装。
寻求云原生体验的Java开发人员有多种选择,一个理想的云原生Java框架利用Java平台及其第三方库中投入的丰富经验,同时使它们在云中运行得更快、更轻便。以下是为云原生开发和部署从头开始构建的八个Java框架。
Micronaut
Micronaut 的创建者希望利用 Spring 和 Grails 等经典Java框架的最佳部分——例如灵活的配置和依赖项注入——但消除了繁重的内存占用和缓慢的启动,这使得它们对于开发微服务不太理想。他们精心设计了注释,为依赖注入提供了足够的信息,而无需在旧框架中使用内存填充反射。在编译时完成更多 Micronaut 的配置意味着代码运行得更快、更轻。
构建该框架是为了支持各种基于JVM的语言(目前是Java、Kotlin和Groovy ),并在各种云上运行它们。预定义的配置文件简化了在所有主要云上部署服务器或无服务器功能,并且有针对所有主要数据库连接的精心编写的文档页面。
Quarkus
想要使用命令式和反应式代码的混合代码的开发人员可以用Quarkus。Quarkus团队从预测云原生开发的最常见用例开始,然后用支持这些用例的示例构建框架,几乎不需要配置。结果可以很容易地放入容器中,并部署在技术集群。
开发团队特别注意确保快速启动,以便Kubernetes集群可以快速扩展。对于偶尔运行的函数来说,这是一个理想的特性,因为它们在被调用之前可以一直处于冷状态。
Spring云函数
Java开发人员非常熟悉Spring框架,因为近二十年来,它一直是许多项目的基础。Spring的开发人员决定创建一个更适合云部署以及其他一些角色的新版本。Spring云函数中的功能旨在轻松地重新部署到各种任务中,如web服务、流处理或后台工作。
Spring云函数框架延续了许多由Spring开创的哲学传统,该框架中的云功能支持反应式或命令式风格,以及两者的混合。Java培训中也有针对云计算的课程,对这方面感兴趣的同学可以报名学习一下,比自学会有效很多。
Vert.x
Vert.x 的创建者希望通过简化事件循环和优化与数据库的连接来创建一个非常快速的框架。Vert.x 有一个像 Node.js 一样的事件循环,它允许它在事件到达时处理多个连接,它还利用Java的线程模型来处理池中的多个线程的事件,如果可用,它们可以在多个内核上运行。
该结构还旨在简化处理事件流的管道的创建。它借用承诺和未来这样的结构来避免带有分层回调的混乱代码。当事件沿着事件总线移动时,异步选项有助于生成充满简单方法调用链的清晰可读的代码。
Eclipse MicroProfile
Eclipse 团队创建了 MicroProfile 项目,以此来调整 Jakarta EE 以运行较小的微服务群。它去除了一些较大平台的开销,同时将许多微服务架构的标准库捆绑在一起。
这种方法对于那些可能从较大、较旧的JavaEE或Jakarta EE项目中迁移代码的开发人员来说最有吸引力。大部分配置和架构保持不变。在许多情况下,调整是微小的。但是这种设计鼓励做出更简单的决定来创建更轻、更快的代码。一些开发人员使用MicroProfile作为通向更现代的云原生框架的垫脚石。
Dropwizard
一些开发人员对老的、经过良好测试的模块有一种天然的感情,他们会喜欢Dropwizard 。Dropwizard的开发团队一直强调这样的词语稳定的和成熟的。他们收集了用于数据库连接的模块,如Hibernate,并混合在表单和其他标准web应用程序组件的框架中。Dropwizard还简化了依赖注入和运行时维护过程,如配置和日志记录。
Dropwizard是修改和扩展现有应用程序的团队的最爱。该结构与旧的、成熟的方法兼容,因为它是建立在它们之上的。
云平台的入门框架
有时候,不需要复杂或精细的东西。所有的云都维护着基本的例子,这些例子是开始编写简单函数的好地方。它们主要用于支持非常简单的决策,并帮助开发人员快速启动。
例如,谷歌云平台的开发团队开源了他们在其功能即服务 (FaaS) 中运行的Java功能的基本框架。使用它构建的代码旨在与 GCP 的标准触发器快速集成,尽管它也可以在任何本地机器上成功运行。
微软还开源了它的Java框架。该模型包括几个用于简化数据传输的例程,例如用于将 JSON 数据转换为JavaPOJO 和从JavaPOJO 转换的库。如果函数触发器为调用提供元数据,则框架直接处理它。
这两个框架都允许你通过编写一个具有单一函数的类来完成许多简单的工作。更复杂的项目可能希望将这个基本工具与其他一些框架合并。这些只是起点,但有时这就足够了。
相关推荐
- 十分钟让你学会LNMP架构负载均衡(impala负载均衡)
-
业务架构、应用架构、数据架构和技术架构一、几个基本概念1、pv值pv值(pageviews):页面的浏览量概念:一个网站的所有页面,在一天内,被浏览的总次数。(大型网站通常是上千万的级别)2、u...
- AGV仓储机器人调度系统架构(agv物流机器人)
-
系统架构层次划分采用分层模块化设计,分为以下五层:1.1用户接口层功能:提供人机交互界面(Web/桌面端),支持任务下发、实时监控、数据可视化和报警管理。模块:任务管理面板:接收订单(如拣货、...
- 远程热部署在美团的落地实践(远程热点是什么意思)
-
Sonic是美团内部研发设计的一款用于热部署的IDEA插件,本文其实现原理及落地的一些技术细节。在阅读本文之前,建议大家先熟悉一下Spring源码、SpringMVC源码、SpringBoot...
- springboot搭建xxl-job(分布式任务调度系统)
-
一、部署xxl-job服务端下载xxl-job源码:https://gitee.com/xuxueli0323/xxl-job二、导入项目、创建xxl_job数据库、修改配置文件为自己的数据库三、启动...
- 大模型:使用vLLM和Ray分布式部署推理应用
-
一、vLLM:面向大模型的高效推理框架1.核心特点专为推理优化:专注于大模型(如GPT-3、LLaMA)的高吞吐量、低延迟推理。关键技术:PagedAttention:类似操作系统内存分页管理,将K...
- 国产开源之光【分布式工作流调度系统】:DolphinScheduler
-
DolphinScheduler是一个开源的分布式工作流调度系统,旨在帮助用户以可靠、高效和可扩展的方式管理和调度大规模的数据处理工作流。它支持以图形化方式定义和管理工作流,提供了丰富的调度功能和监控...
- 简单可靠高效的分布式任务队列系统
-
#记录我的2024#大家好,又见面了,我是GitHub精选君!背景介绍在系统访问量逐渐增大,高并发、分布式系统成为了企业技术架构升级的必由之路。在这样的背景下,异步任务队列扮演着至关重要的角色,...
- 虚拟服务器之间如何分布式运行?(虚拟服务器部署)
-
在云计算和虚拟化技术快速发展的今天,传统“单机单任务”的服务器架构早已难以满足现代业务对高并发、高可用、弹性伸缩和容错容灾的严苛要求。分布式系统应运而生,并成为支撑各类互联网平台、企业信息系统和A...
- 一文掌握 XXL-Job 的 6 大核心组件
-
XXL-Job是一个分布式任务调度平台,其核心组件主要包括以下部分,各组件相互协作实现高效的任务调度与管理:1.调度注册中心(RegistryCenter)作用:负责管理调度器(Schedule...
- 京东大佬问我,SpringBoot中如何做延迟队列?单机与分布式如何做?
-
京东大佬问我,SpringBoot中如何做延迟队列?单机如何做?分布式如何做呢?并给出案例与代码分析。嗯,用户问的是在SpringBoot中如何实现延迟队列,单机和分布式环境下分别怎么做。这个问题其实...
- 企业级项目组件选型(一)分布式任务调度平台
-
官网地址:https://www.xuxueli.com/xxl-job/能力介绍架构图安全性为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;调度中心和执...
- python多进程的分布式任务调度应用场景及示例
-
多进程的分布式任务调度可以应用于以下场景:分布式爬虫:importmultiprocessingimportrequestsdefcrawl(url):response=re...
- SpringBoot整合ElasticJob实现分布式任务调度
-
介绍ElasticJob是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目ElasticJob-Lite和ElasticJob-Cloud组成。它通过弹性调度、资源管控、...
- 分布式可视化 DAG 任务调度系统 Taier 的整体流程分析
-
Taier作为袋鼠云的开源项目之一,是一个分布式可视化的DAG任务调度系统。旨在降低ETL开发成本,提高大数据平台稳定性,让大数据开发人员可以在Taier直接进行业务逻辑的开发,而不用关...
- SpringBoot任务调度:@Scheduled与TaskExecutor全面解析
-
一、任务调度基础概念1.1什么是任务调度任务调度是指按照预定的时间计划或特定条件自动执行任务的过程。在现代应用开发中,任务调度扮演着至关重要的角色,它使得开发者能够自动化处理周期性任务、定时任务和异...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)