使用 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 端点。

相关推荐
码界筑梦坊34 分钟前
基于Django的个人博客系统的设计与实现
后端·python·django·毕业设计
酷爱码2 小时前
springboot 动态配置定时任务
java·spring boot·后端
计算机-秋大田2 小时前
基于SpringBoot的美食烹饪互动平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
vue.js·spring boot·后端·课程设计·美食
加油,旭杏3 小时前
【go语言】grpc 快速入门
开发语言·后端·golang
brzhang3 小时前
墙裂推荐一个在 Apple Silicon 上创建和管理虚拟机的轻量级开源工具:lume
前端·后端
程序猿零零漆4 小时前
SpringCloud系列教程:微服务的未来(二十)Seata快速入门、部署TC服务、微服务集成Seata
java·spring·spring cloud·微服务
沈韶珺4 小时前
Visual Basic语言的云计算
开发语言·后端·golang
沈韶珺4 小时前
Perl语言的函数实现
开发语言·后端·golang
美味小鱼5 小时前
Rust 所有权特性详解
开发语言·后端·rust
我的K84095 小时前
Spring Boot基本项目结构
java·spring boot·后端