使用Spring Boot和Spring Cloud构建和打包微服务架构(一)

本文详述如何使用Spring Boot和Spring Cloud构建微服务架构,涵盖微服务概念、Docker容器化、Eureka服务发现。通过示例项目讲解了Spring Boot的微服务实现,包括school-service和school-ui的创建,以及使用Eureka构建服务发现服务器。
摘要由CSDN通过智能技术生成

抽丝剥茧,细说架构那些事——【优锐课】

本文将带大家了解如何使用Spring Boot和Spring Cloud构建和打包微服务。

在本教程中,将展示如何使用Spring Boot实现微服务架构。你还将学习如何使用Docker Compose将工件部署为Docker容器,如何使用Spring Profiles集成身份验证以及如何在生产配置文件中启用它。

了解现代微服务架构

与整体架构相反,微服务指示您必须将应用程序分成与逻辑相关的小片段。这些片段是独立的软件,例如,可以使用HTTP或消息与其他片段进行通信。

有一些关于微型尺寸的讨论。有人说微服务是可以在单个冲刺中创建的软件。其他人则说,如果在逻辑上相关,则微服务的规模可能会更大(例如,您不能混合使用苹果和橙子)。我同意马丁•福勒(Martin Fowler)的观点,认为尺寸并没有多大关系,它与风格息息相关。

微服务有许多优点:

• 没有很高的耦合风险—由于每个应用程序都处于不同的进程中,因此无法创建彼此对话的类。

• 易于扩展—如您所知,每个服务都是独立的软件。因此,它可以按需扩展或缩小。此外,由于代码比整体代码小,因此启动速度可能更快。

• 多个堆栈—您可以为每个服务使用最佳的软件堆栈。例如,Python可以更好地满足您的构建需求,则不再需要使用Java。

• 更少的合并和代码冲突—由于每个服务都是不同的存储库,因此更易于处理和查看提交。

但是,有一些缺点:

• 您有一个新的敌人—网络问题。服务启动了吗? 如果服务中断,该怎么办?

复杂的部署过程—好的,CI / CD在这里,但是现在每个服务都有一个工作流程。如果他们使用不同的堆栈,则可能甚至无法为每个堆栈复制工作流程。

更复杂且难以理解的架构—它取决于您的设计方式,但请考虑以下事项:如果您不知道方法的作用,则可以阅读其代码。在微服务体系结构中,此方法可能在另一个项目中,甚至可能没有代码。

如今,通常应该首先避免使用微服务架构。经过一些迭代后,代码划分将变得更加清晰,项目的需求也将变得更加清晰。在您的开发团队开始进行小型项目之前,处理微服务通常过于昂贵。

在 Spring使用Docker构建微服务

在本教程中,您将构建两个项目:服务(school-service)和UI(school_ui)。该服务提供持久层和业务逻辑,而UI提供图形用户界面。只需最少的配置即可连接它们。

初始设置后,我将讨论发现和配置服务。两种服务都是任何大规模分布式体系结构的重要组成部分。为了证明这一点,您将其与OAuth 2.0集成在一起,并使用配置项目来设置OAuth 2.0密钥。

最后,每个项目都将转换为Docker映像。Docker Compose将用于模拟容器协调器,因为Compose将使用服务之间的内部网络来管理每个容器。

最后,将介绍Spring配置文件以根据当前适当分配的环境来更改配置。这样,您将拥有两个OAuth 2.0环境:一个用于开发,另一个用于生产。

更少的单词,更多的代码!克隆本教程的资源库,然后查看start分支。

git clone -b start https://github.com/oktadeveloper/okta-spring-microservices-docker-example.git

Root pom.xml 文件不是必需的。但是,一次管理多个项目可能会有所帮助。让我们看看里面:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.okta.developer.docker_microservices</groupId>
    <artifactId>parent-pom</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>parent-project</name>
    <modules>
        <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值