使用 Spring Boot 构建微服务

Spring Boot 为所有这些阶段提供开箱即用的支持,并提供插件和模块形式的专用组件。

打包 - 它提供自己的 Maven 支持,将代码和所有依赖项打包为 Uber jar,包括容器本身。为此,您需要添加以下构建插件和一个简单的重新打包目标,该目标重新打包在正常 Maven 打包阶段构建的二进制文件。

部署 - 它配备了不同类型的 Web 容器来支持 servlet/JSP 等 Web 资源的嵌入式部署。最重要的是,它提供了一个可以部署 RESTful 资源的 Jersey 容器。

最新的 DZone 参考卡

GitOps 的要点

Launcher - Spring Boot 使启动应用程序就像运行 Hello World 程序一样简单。只需一行代码即可触发依赖管理、包扫描和容器初始化。

参考代码: microservice-starter-springboot

在研究了所有这些方面之后,可以使用不同的工具和框架来制作这些制品。让我们讨论每个网络服务器和平台。

Tomcat

Tomcat 通常用作部署 Web 应用程序的 Web 容器,但它也可以用作运行打包的微服务的嵌入式容器。为此,需要满足以下条件才能创建包含的微服务。

打包 - 与 Spring Boot 不同,它不提供开箱即用的解决方案来打包您的微服务,但您可以使用 Maven 标准插件(如 assemble 和 Shade)来构建包含所有依赖项并支持主类的 Uber jar体现出来。

部署 - 所有 Tomcat 运行时模块都可以提供一个可以部署和运行 Jersey 容器的依赖项。

启动器 - Tomcat 允许您以编程方式配置端点和容器,并且您可以在控制范围内启动和停止实例。

参考代码: microservice-starter-tomcat

Jetty

Jetty 非常适合部署和运行微服务,因为它主要使用嵌入式容器来运行 Web 应用程序。它也遵循与 Tomcat 相同的模式来运行微服务。

打包 - 它可以利用 Maven 标准插件将代码和依赖项打包到单个 Uber jar 中。

部署 - Jetty 提供了一个 servlet 容器,可以通过 Jersey 容器来填充该容器来提供 Web 服务。

Launcher - 与 Tomcat 一样,它提供了类似的编程 API 来部署 Jersey 容器和 REST 端点。

参考代码: microservice-starter-jetty

Grizzly

Grizzly 是一种不太流行的 Web 容器,但它为 JEE 社区提供了最标准的应用程序服务器。是的,它是 Glassfish 服务器背后的引擎。它确实为构建微服务提供了开箱即用的功能。

打包 - 我们可以使用 Maven 标准插件(例如 assembly 和 Shade)来打包 Web 服务及其依赖项。

部署 - 与 Tomcat 和 Jetty 不同,它为部署使用 Jersey 构建的 Web 服务提供内置支持,并提供标准的基于容器的 Grizzly HTTP 服务。

Launcher - 与 Spring Boot 一样,它提供了一个非常抽象的 API,用于配置 REST 服务并在一行代码中运行容器本身。

参考代码: microservice-starter-grizzly

Netty

Netty 是一个著名的异步和事件驱动的客户端/服务器框架,支持 FTP、SMTP 和 HTTP 等大多数协议,并为 UDP 和 TCP 应用程序提供低级编程。最重要的是,Glassfish 提供了一个特殊的 Jersey 容器,它使用非阻塞 IO 和 HTTP 服务。它可以像 Grizzly 一样用作 Web 服务容器。

打包 - 我们可以使用 Maven 标准插件(例如 assembly 和 Shade)来打包 Web 服务及其依赖项。

部署 - 与 Grizzly 一样,它为部署使用 Jersey 构建的 Web 服务提供开箱即用的支持,并提供基于 Netty HTTP 服务的标准容器。

Launcher - 与 Grizzly 一样,它提供了一个非常抽象的 API,用于配置 REST 服务和运行容器。

参考代码: microservice-starter-netty

Undertow

Undertow 是一个 Web 服务器,为流行的 JBoss AS 提供支持,并且能够作为嵌入式容器运行。它提供精细的 HTTP 和非阻塞 IO 服务。除此之外,它还提供 Servlet 和 Web Socket 实现。它可以用于以类似的方式构建微服务。

打包 - 我们可以使用 Maven 标准插件(例如 assembly 和 Shade)来打包 Web 服务及其依赖项。

部署 - Undertow 提供了一个可与 Jersey Servlet 容器一起使用的 HTTP Servlet 容器。

Launcher - 它还提供了一个编程 API 来部署 Jersey 容器和 REST 端点。

相关推荐
2401_8576363938 分钟前
共享汽车管理新纪元:SpringBoot框架应用
数据库·spring boot·汽车
喵叔哟39 分钟前
【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--访问权限中间件
微服务·中间件·.net
man20171 小时前
【2024最新】基于springboot+vue的闲一品交易平台lw+ppt
vue.js·spring boot·后端
hlsd#1 小时前
关于 SpringBoot 时间处理的总结
java·spring boot·后端
路在脚下@1 小时前
Spring Boot 的核心原理和工作机制
java·spring boot·后端
幸运小圣2 小时前
Vue3 -- 项目配置之stylelint【企业级项目配置保姆级教程3】
开发语言·后端·rust
菜菜-plus2 小时前
分布式,微服务,SpringCloudAlibaba,nacos,gateway,openFeign
java·分布式·微服务·nacos·gateway·springcloud·openfeign
计算机-秋大田2 小时前
基于微信小程序的农场管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
好奇的菜鸟2 小时前
Spring Boot 启动时自动配置 RabbitMQ 交换机、队列和绑定关系
spring boot·rabbitmq
小桥流水人家jjh2 小时前
Mybatis执行自定义SQL并使用PageHelper进行分页
java·数据库·spring boot·sql·mybatis