Docker Swarm全解析:实现微服务高可用与故障转移的秘密武器

news2024/10/4 14:03:16

 🐇明明跟你说过:个人主页

🏅个人专栏:《Docker入门到精通》 《k8s入门到实战》🏅

🔖行路有良友,便是天堂🔖

目录

一、基本概念和介绍

1、Docker Swarm 是什么,它与 Docker 的关系

2、Docker Swarm 的架构和工作原理

3、 docker swarm 和k8s的区别

3.1、设计和架构 

3.2、功能和扩展性

 3.3、部署和管理

3.4、社区和生态

二、安装和配置

1、安装 Docker Engine

2、初始化Swarm集群

3、添加节点到Swarm集群

4、网络设置

三、服务管理

1、创建服务

2、扩展服务

3、缩减服务 

 4、删除服务

四、节点管理 

1、查看节点状态

 2、添加新节点

3、从集群中删除节点

 五、网络管理

1、Swarm网络模型

2、创建网络

 3、将服务连接到网络

六、负载均衡和高可用性

1、Swarm如何提供负载均衡和高可用性

2、如何设计服务和网络以实现负载均衡和故障转移


一、基本概念和介绍

1、Docker Swarm 是什么,它与 Docker 的关系

Docker Swarm 是 Docker 官方提供的容器编排和集群管理工具,用于管理多个 Docker 主机上的容器化应用程序。它使得用户可以轻松地创建、部署和管理分布式应用程序,同时提供高可用性、伸缩性和容错性。

与单个 Docker 容器相比,Docker Swarm 可以管理多个 Docker 主机上的容器,有关Docker的详细介绍,请参考Docker的诞生背景与设计初衷这篇文章。

Docker  Swarm具有以下功能与特性:

  1. 容器编排: Docker Swarm 可以根据用户定义的规则和策略,在多个 Docker 主机上自动部署和管理容器,实现容器的自动化编排。
  2. 服务发现: Docker Swarm 提供了内置的服务发现机制,允许容器之间相互通信和发现,无需手动配置 IP 地址或端口映射。
  3. 负载均衡: Docker Swarm 支持负载均衡功能,可以将流量均匀地分配到多个容器实例之间,提高应用程序的性能和可用性。
  4. 伸缩性: Docker Swarm 允许根据实际需求动态地扩展或缩减容器实例的数量,以应对流量的变化和负载的增减。
  5. 容错性: Docker Swarm 提供了容器的高可用性和容错性机制,可以自动重新启动失败的容器实例,并确保应用程序的持续可用性。

Docker Swarm 是 Docker 公司推出的一个独立项目,作为 Docker 生态系统的一部分,与 Docker Engine(Docker 容器运行时)密切相关。通过 Docker Engine API,Docker Swarm 可以与 Docker 主机进行通信和交互,实现容器的管理和编排。

Docker Swarm 是 Docker 公司为了满足容器化应用程序在生产环境中的需求而开发的一个容器编排和集群管理工具,旨在简化容器化应用程序的部署、管理和扩展。

2、Docker Swarm 的架构和工作原理

架构:

  1. Manager 节点: Swarm 集群中的一个或多个节点被指定为 Manager 节点,负责集群的管理和控制。Manager 节点维护集群的状态信息、调度容器、处理用户请求等任务。
  2. Worker 节点: Worker 节点是 Swarm 集群中的工作节点,负责运行容器实例。Worker 节点接收来自 Manager 节点的任务分配,并执行相应的容器操作。
  3. Raft 协议: Swarm 使用 Raft 一致性算法来维护集群的状态一致性。Raft 协议用于选举 Manager 节点的 Leader,并确保 Manager 节点之间的状态信息同步。

工作原理: 

  1. 节点加入: 新的节点可以通过加入 Swarm 集群来成为 Swarm 的一部分。节点加入过程中,Manager 节点将会指派其角色(Manager 或 Worker)并分配相应的任务。
  2. 服务定义: 用户通过定义服务来描述容器化应用程序的架构和配置。服务可以包含容器映像、部署配置、网络配置等信息。
  3. 调度策略: Manager 节点根据用户定义的服务和调度策略,在集群中选择合适的节点来部署容器实例。调度策略可以是全局调度(在所有节点上运行)或约束调度(根据节点的标签或资源限制进行调度)。
  4. 容器编排: Manager 节点负责对容器进行编排和管理,包括创建、启动、停止、重启容器实例等操作。它还负责监控容器的状态,并在需要时进行故障恢复和自动扩展。
  5. 服务发现和负载均衡: Swarm 提供了内置的服务发现和负载均衡机制,允许容器之间相互通信和发现,无需手动配置 IP 地址或端口映射。Swarm 还支持负载均衡,可以将流量均匀地分配到多个容器实例之间。
  6. 自动扩展和容错: Swarm 允许根据实际需求动态地扩展或缩减容器实例的数量,以应对流量的变化和负载的增减。它还提供了容器的高可用性和容错性机制,可以自动重新启动失败的容器实例,并确保应用程序的持续可用性。

3、 docker swarm 和k8s的区别

Docker Swarm 和 Kubernetes(通常简称为 k8s)是两种不同的容器编排平台,它们有一些相似之处,但也有很多不同点。

3.1、设计和架构 

  • Docker Swarm: Docker Swarm 是 Docker 公司提供的官方容器编排工具,旨在简化容器集群的管理和部署。它是 Docker 引擎的一部分,与 Docker Engine 集成度高,更易于上手和部署。
  • Kubernetes: Kubernetes 是由 Google 开源的容器编排平台,是一个更为复杂和强大的系统,可以用于自动化部署、扩展和管理容器化应用程序。它具有更丰富的功能和更复杂的架构,适用于大型和复杂的容器集群。

3.2、功能和扩展性

  • Docker Swarm: Docker Swarm 提供了一组基本的容器编排功能,包括服务发现、负载均衡、自动扩展和滚动更新等。它的设计相对简单,适合于小型和中型规模的容器集群。
  • Kubernetes: Kubernetes 提供了更丰富和灵活的功能,包括自动伸缩、服务发现、负载均衡、容错和滚动更新等。它支持更复杂的应用场景和更大规模的容器集群,适合于企业级和生产环境的部署。

 3.3、部署和管理

  • Docker Swarm: Docker Swarm 的部署和管理相对简单,适合于小型团队和初学者。它与 Docker Engine 集成度高,易于使用和维护。
  • Kubernetes: Kubernetes 的部署和管理相对复杂,需要更多的配置和学习成本。但它提供了更强大的功能和更灵活的扩展性,适合于大型团队和复杂的生产环境。

3.4、社区和生态

  • Docker Swarm: Docker Swarm 的社区相对较小,但作为 Docker 公司的官方产品,得到了广泛的支持和关注。
  • Kubernetes: Kubernetes 的社区非常活跃,拥有庞大的用户群体和丰富的生态系统。它被广泛应用于各种行业和领域,得到了众多厂商和组织的支持和贡献。

二、安装和配置

环境:

1、安装 Docker Engine

※这是运行 Docker Swarm 的基础

如果未安装docker,请参考在CentOS系统中轻松安装和配置Docker指南这篇文章,这里不再过多赘述。

2、初始化Swarm集群

[root@swarm ~]# docker swarm init --advertise-addr 192.168.40.120

docker swarm init:这个命令初始化了一个新的 Docker Swarm 集群,并将当前节点设置为 Swarm 的 Manager 节点。

--advertise-addr 192.168.40.120:这个参数指定了节点的广播地址,即其他节点和服务将使用此地址与当前节点通信。在一个多节点的 Swarm 集群中,节点需要知道如何与其他节点进行通信,广播地址就是用来实现这个目的的。

查看集群当前状态

[root@swarm ~]# docker node ls

3、添加节点到Swarm集群

在两台node节点上执行 

[root@node2 ~]# docker swarm join --token SWMTKN-1-395np33k9100m0dr34i2bua1giph6udkj2ziai7ca3kfi4efne-7zp1gxjtvuhd2480m0v9f9nkh 192.168.40.120:2377

※ token和IP要填写自己的,千万不要复制笔者的

回到swarm节点查看集群状态

[root@swarm ~]# docker node ls

4、网络设置

  • 使用 Docker 内置网络: Docker Swarm 集群默认使用 Docker 内置的 overlay 网络模式来连接容器。可以使用 docker network create 命令创建自定义的 overlay 网络,然后在服务配置中指定使用该网络。
  • 自定义网络: 使用第三方的网络插件来创建自定义的网络,例如 Calico、Weave 等。这些插件可以提供更丰富的网络功能和管理选项。
  • 网络策略: 配置网络策略来限制容器之间的通信,例如使用标签和网络策略来限制容器访问特定的网络服务或资源。

三、服务管理

1、创建服务

在swarm节点上执行

[root@swarm ~]# docker service create --name my-service --replicas 1 -p 80:80 nginx:latest

--name my-service:指定服务的名称为 my-service。
--replicas 3:指定要启动的副本数量为 3 个,即在 Swarm 集群中启动 3 个相同的容器实例。
-p 80:80:将容器内部的 80 端口映射到主机的 80 端口,以便外部可以访问服务。
nginx:latest:指定容器映像为 nginx,并使用最新的版本。
执行该命令后,Docker Swarm 将会在集群中启动一个名为 my-service 的 Nginx 容器实例 

查看服务

[root@swarm ~]# docker service ls

查看更详细的信息

[root@swarm ~]# docker service inspect --pretty my-service 

2、扩展服务

在Swarm节点执行

[root@swarm ~]# docker service scale my-service=3

my-service 是要扩展的服务的名称,而 3 则是希望该服务的副本数量达到的目标值。

3、缩减服务 

[root@swarm ~]# docker service scale my-service=1

 4、删除服务

[root@swarm ~]# docker service rm my-service

四、节点管理 

1、查看节点状态

[root@swarm ~]# docker node ls

# 这个命令将列出 Swarm 集群中的所有节点,并显示它们的状态、角色、节点 ID、主机名、版本等信息。

 2、添加新节点

要将新节点添加到 Docker Swarm 集群中,首先需要准备好要加入的新节点,并确保它们满足集群的要求和配置

  1. 在新节点上安装 Docker Engine,确保版本与 Swarm 集群中的其他节点兼容。
  2. 加入 Swarm 集群, 在新节点上执行 docker swarm join 命令,将新节点加入到 Swarm 集群中。你需要知道 Swarm 集群的地址和令牌。
docker swarm join --token <TOKEN> <SWARM_MANAGER_IP>:2377
  • <TOKEN> 是用于加入 Swarm 集群的令牌,你可以通过 docker swarm join-token worker 或 docker swarm join-token manager 在集群中的任意节点上获取。
  • <SWARM_MANAGER_IP> 是 Swarm 集群中任一 Manager 节点的 IP 地址 。

3、从集群中删除节点

要从 Docker Swarm 集群中删除节点,需要执行以下步骤

  1. 查看节点列表: 首先,使用 docker node ls 命令查看当前 Swarm 集群中的节点列表,确定要删除的节点的 ID 或名称。
  2. 标记节点不可用(可选): 如果要删除的节点还在运行服务,可以使用 docker node update --availability drain <NODE_ID> 命令将节点标记为不可用。这将使 Swarm 在删除节点之前从该节点上迁移服务到其他节点上。
  3. 从集群中删除节点: 使用 docker node rm <NODE_ID> 命令将节点从 Swarm 集群中删除。请注意,删除节点会使该节点上的服务停止运行,并且服务可能会在其他节点上重新分配。

删除节点上运行的服务

[root@swarm ~]# docker node update --availability drain iy4blmqepvldb4un4yr7kwedx

 从集群删除节点

[root@swarm ~]# docker node rm iy4blmqepvldb4un4yr7kwedx --force

 五、网络管理

1、Swarm网络模型

Docker Swarm 使用了与 Docker Engine 相似的网络模型,但也有一些特定的方面与其不同。下面是 Docker Swarm 的网络模型的一些关键特点:

1. Overlay 网络

  • 默认网络模式: Docker Swarm 使用 overlay 网络模式作为默认的网络模式,这允许容器在整个 Swarm 集群中无缝通信。
  • 跨主机通信: Overlay 网络允许不同主机上的容器之间直接通信,无需显式端口映射或特殊配置。

2. 路由 Mesh

  • 路由 Mesh: Swarm 集群中的每个节点都维护着一个路由 Mesh,这个 Mesh 允许容器之间的跨节点通信。
  • 动态路由: 路由 Mesh 动态地更新和维护路由表,确保容器之间的通信能够顺利进行。

3. 内置服务发现和负载均衡

  • 内置服务发现: Swarm 提供内置的服务发现机制,使得容器可以通过服务名称而不是 IP 地址进行访问。
  • 内置负载均衡: Swarm 还提供了内置的负载均衡机制,可以将流量均匀地分配到多个容器实例之间。

4. 虚拟网络与子网划分

  • 虚拟网络: Swarm 允许创建虚拟网络,以便将容器划分到不同的逻辑网络中,以实现更好的隔离和管理。
  • 子网划分: 虚拟网络可以划分为多个子网,用于组织和管理容器的 IP 地址分配。

5. 外部连接和插件

  • 外部连接: Swarm 可以与外部网络连接,允许容器访问外部服务和资源。
  • 插件架构: Swarm 的网络模型支持插件架构,允许集成第三方网络插件,以满足特定的网络需求和场景。

2、创建网络

要在 Docker Swarm 中创建网络,可以使用 docker network create 命令

docker network create --driver overlay <NETWORK_NAME>

--driver overlay:指定网络驱动为 overlay,这是 Swarm 默认的网络驱动,用于实现跨主机的容器通信。

<NETWORK_NAME>:指定要创建的网络的名称。

 创建一个名为 my-network 的网络

[root@swarm ~]# docker network create --driver overlay my-network

查看网络

[root@swarm ~]# docker network ls 

 查看我们刚刚创建的网络的详细信息

[root@swarm ~]# docker network inspect my-network

 3、将服务连接到网络

[root@swarm ~]# docker service create --name my-service --network my-network nginx:latest

 --name my-service:指定服务的名称为 my-service。
--network my-network:指定要连接的网络名称为 my-network。
<IMAGE>:指定要使用的容器镜像。

六、负载均衡和高可用性

1、Swarm如何提供负载均衡和高可用性

负载均衡:

  1. 服务发现: Docker Swarm 提供内置的服务发现机制,允许容器通过服务名称而不是 IP 地址进行访问。这使得容器可以在不同节点之间动态部署和移动,而不需要手动配置服务地址。
  2. 内置负载均衡器: Swarm 自动在服务背后启动负载均衡器,它将流量分配给运行服务的所有节点上的容器。这使得服务能够平滑地处理流量,无需额外的配置。
  3. 服务副本: 通过在多个节点上运行服务的副本,Swarm 可以将流量均匀地分配到这些副本之间,以提高服务的可用性和吞吐量。 

高可用性:

  1. 故障恢复: 当容器或节点发生故障时,Docker Swarm 会自动重新调度容器到可用的节点上,以确保服务的持续运行和可用性。
  2. 服务健康检查: Swarm 具有内置的服务健康检查机制,可以定期检查服务的健康状态。当服务健康状态异常时,Swarm 将自动重新启动容器或进行故障恢复操作。
  3. 节点管理: Swarm 允许集群中的节点动态加入和离开,同时提供了节点健康检查和自动缩放的功能。这使得集群可以根据需求自动调整和优化资源分配,以应对负载和故障。

2、如何设计服务和网络以实现负载均衡和故障转移

服务设计:

  1. 多副本部署: 在 Docker Swarm 中,通过创建多个副本来部署服务,确保服务的高可用性和负载均衡。你可以使用 --replicas 参数指定服务的副本数量。
  2. 健康检查: 配置服务的健康检查机制,使得 Swarm 能够定期检查服务的健康状态。如果某个副本的健康状态异常,Swarm 将会自动进行故障转移,重新调度容器到其他健康的节点上。
  3. 负载均衡器: 在服务前端引入负载均衡器,例如使用 Swarm 内置的负载均衡机制或者外部负载均衡器,以均匀地分配流量到各个服务副本中。

网络设计:

  1. Overlay 网络: 使用 Docker Swarm 中的 overlay 网络模式,实现跨节点的容器通信。这样,服务的不同副本可以跨节点之间进行通信,无需手动配置。
  2. 服务发现: 利用 Swarm 内置的服务发现机制,通过服务名称而不是 IP 地址来访问服务。这样,无论服务在集群中的哪个节点上运行,客户端都可以通过服务名称来访问服务。
  3. 网络安全: 确保网络安全,使用合适的网络策略和防火墙规则,限制对服务的访问,以防止未经授权的访问和攻击。

故障转移:

  1. 节点管理: 使用 Swarm 的节点管理功能,动态监控节点的健康状态,及时检测和处理节点的故障。当节点发生故障时,Swarm 将自动重新调度容器到其他健康的节点上。
  2. 服务监控和日志: 配置服务监控和日志系统,实时监控服务的运行状态和日志信息。这样,可以及时发现和解决服务的异常情况,提高服务的可靠性和稳定性。

🎗️🎗️🎗️以上仅是我对Docker Swarm的个人观点与见解,如果您有任何不同的看法或建议,我非常欢迎在评论区与我分享和讨论。

🚩🚩🚩对于希望深入了解Docker技术的朋友们,我诚挚地邀请您关注我的Docker专栏Docker从零到精通:实战指南。我会定期更新和分享Docker领域的最新知识、技术动态和前沿实践,希望能为您的Docker学习之旅提供有价值的参考和指导。

❤️❤️❤️最后,请允许我衷心感谢您的阅读和对本专栏的支持!您的鼓励是我持续创作的最大动力。希望我们能在Docker的学习道路上共同进步,共创辉煌!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1482292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

APP自动化测试-入门示例

入门示例 通过上一篇博客APP自动化测试介绍-CSDN博客的学习&#xff0c;相信大家对APP自动化测试已经有了一定的了解&#xff0c;下面演示一下入门示例 1. 配置Appium 1.1. 点击Appium图标&#xff0c;打开服务器&#xff1a; 1.2. 点击Edit Configurations,进入配置页面&am…

elment-ui table表格排序后 清除排序箭头/恢复默认排序 的高亮样式

问题描述&#xff1a; 1.默认排序是按照名称升序排列&#xff08;图一&#xff09; 2.在选择了筛选项以及其他排序方式之后&#xff0c;箭头高亮是这样的&#xff08;图二&#xff09; 3.当我点击清空按钮后&#xff0c;类型清空了&#xff0c;并且传给后端的排序方式是名称/升…

文本多分类

还在用BERT做文本分类&#xff1f;分享一套基于预训练模型ERNIR3.0的文本多分类全流程实例【文本分类】_ernir 文本分类-CSDN博客 /usr/bin/python3 -m pip install --upgrade pip python3-c"import platform;print(platform.architecture()[0]);print(platform.machine…

StarRocks实战——表设计规范与监控体系

目录 前言 一、StarRocks表设计 1.1 字段类型 1.2 分区分桶 1.2.1 分区规范 1.2.2 分桶规范 1.3 主键表 1.3.1 数据有冷热特征 1.3.2 大宽表 1.4 实际案例 1.4.1 案例一&#xff1a;主键表内存优化 1.4.2 案例一&#xff1a;Update内存超了&#xff0c;导致主键表导…

【AI Agent系列】【MetaGPT多智能体学习】5. 多智能体案例拆解 - 基于MetaGPT的智能体辩论(附完整代码)

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第三篇笔记。主要是对课程刚开始环境搭…

YOLOv9有效提点|加入SE、CBAM、ECA、SimAM等几十种注意力机制(一)

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、本文介绍 本文将以SE注意力机制为例&#xff0c;演示如何在YOLOv9种添加注意力机制&#xff01; 《Squeeze-and-Excitation Networks》 SENet提出…

【六袆 - React】Next.js:React 开发框架;Next.js开发框架的特点

Next.js&#xff1a;React 开发框架 Next.js的特点 1.直观的、基于页面的路由系统&#xff08;并支持动态路由&#xff09; Next.js 提供了基于文件系统的路由&#xff0c;意味着你可以通过创建页面文件来定义路由。 伪代码示例&#xff1a; // pages/index.js export defa…

css【详解】—— 圣杯布局 vs 双飞翼布局 (含手写清除浮动 clearfix)

两者功能效果相同&#xff0c;实现方式不同 效果预览 两侧宽度固定&#xff0c;中间宽度自适应&#xff08;三栏布局&#xff09;中间部分优先渲染允许三列中的任意一列成为最高列 圣杯布局 通过左右栏填充容器的左右 padding 实现&#xff0c;更多细节详见注释。 <!DOCTYP…

day03-Vue-Element

一、Ajax 1 Ajax 介绍 1.1 Ajax 概述 概念&#xff1a;Asynchronous JavaScript And XML&#xff0c;异步 的 JavaScript 和 XML。 作用&#xff1a; 数据交换&#xff1a;通过 Ajax 可以给服务器发送请求&#xff0c;并获取服务器响应的数据。异步交互&#xff1a;可以在 不…

排序(2)——希尔排序

希尔排序&#xff08;缩小增量排序&#xff09; 基本思想 希尔排序法又称缩小增量法。希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有记录分成个组&#xff0c;所有距离为的记录分在同一组内&#xff0c;并对每一组内的记录进行排序。然后&…

lotus 从矿工可用余额扣除扇区质押

修改 miner配置文件 # Whether to use available miner balance for sector collateral instead of sending it with each message## type: bool# env var: LOTUS_SEALING_COLLATERALFROMMINERBALANCE#CollateralFromMinerBalance falseCollateralFromMinerBalance true质押金…

手写数字识别(慕课MOOC人工智能之模式识别)

问题&#xff1a;手写数字识别 数据集 数据集链接请点击我 代码 %mat2vector.m function [data_] mat2vector(data,num)[row,col,~] size(data);data_zeros(num,row*col);for page 1:numfor rows 1:rowfor cols1:coldata_(page,((rows-1)*colcols)) im2double(data(rows,cols…

应用稳定性优化1:ANR问题全面解析

闪退、崩溃、无响应、重启等是应用稳定性常见的问题现象&#xff0c;稳定性故障大体可归类为ANR/冻屏、Crash/Tombstone、资源泄露三大类。本文通过对三类故障的产生原因、故障现象、触发机制及如何定位等&#xff0c;展开深度解读。 本文将详解ANR类故障&#xff0c;并通过一…

java数据结构与算法刷题-----LeetCode437. 路径总和 III(前缀和必须掌握)

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 深度优先2. 前缀和 1. 深度优先 解题思路&#xff1a;时间复…

图书推荐||Word文稿之美

让你的文档从平凡到出众&#xff01; 本书内容 《Word文稿之美》是一本全面介绍Word排版技巧和应用的实用指南。从初步认识数字排版到高效利用模板、图文配置和表格与图表的排版技巧&#xff0c;再到快速修正错误和保护文件&#xff0c;全面系统地讲解数字排版的技术和能力&…

多行业万能预约门店小程序源码系统 支持多门店预约小程序 带完整的安装代码包以及搭建教程

随着消费者对于服务体验要求的不断提升&#xff0c;门店预约系统成为了许多行业提升服务质量、提高运营效率的重要工具。然而&#xff0c;市面上的预约系统往往功能单一&#xff0c;无法满足多行业、多场景的个性化需求。下面&#xff0c;小编集合了多年的行业经验和技术积累&a…

Linux 安装k8s

官网 常见的三种安装k8s方式 1.kubeadm 2.kops&#xff1a;自动化集群制备工具 3.kubespray&#xff1a; 提供了 Ansible Playbook 下面以kubeadm安装k8s kubeadm的安装是通过使用动态链接的二进制文件完成的&#xff0c;目标系统需要提供 glibc ##使用 ss 或者 netstat 检测端…

基于Springboot的高校实习信息发布网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的高校实习信息发布网站的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xf…

jmeter如何请求访问https接口

添加线程组http请求 新建线程组&#xff0c;添加http请求 填入协议&#xff0c;ip&#xff0c;端口&#xff0c;请求类型&#xff0c;路径&#xff0c;以及请求参数&#xff0c;查看结果树等。 然后最关键的一步来了。 导入证书 步骤&#xff1a;获取证书&#xff0c;重新生…

Windows11家庭版安装Docker

文章目录 安装Docker安装hyper-v继续解决报错完成效果图进一步测试是否完成安装 安装Docker windows如何安装docker 装好之后&#xff0c;我打开报错。 安装hyper-v 按这个视频操作&#xff1a;Windows 11 家庭版安装 Hyper-V bat文件里的代码是&#xff1a; pushd "…