当前位置: 首页 > news >正文

从0到1实现项目Docker编排部署

在深入讨论 Docker 编排之前,首先让我们了解一下 Docker 技术本身。Docker 是一个开源平台,旨在帮助开发者自动化应用程序的部署、扩展和管理。自 2013 年推出以来,Docker 迅速发展成为现代软件开发和运维领域不可或缺的重要工具。

Docker 采用容器技术,将应用程序及其所有依赖项封装在一起,从而确保它们能够在不同环境中一致地运行。与传统的虚拟化技术(如虚拟机)相比,Docker 的容器更轻量级,启动时间也显著缩短。这一优势使得开发者能够更高效地进行应用程序开发和测试,尤其是在快速迭代和频繁发布的场景中。

随着 DevOps 思潮的兴起,开发与运维之间的界限变得日益模糊,Docker 在这一转变中提供了强有力的技术支持。然而,随着项目规模的扩大和复杂性的增加,Docker 容器的数量也随之增长,这就引发了对 Docker 编排的需求。

Docker 编排(Orchestration)指的是管理和协调多个 Docker 容器的工具和技术,其主要目的是简化容器的部署、扩展和管理流程。通过编排,用户可以更轻松地管理复杂的应用程序架构,确保各个组件能够高效协同工作。

因此,本文将为读者提供一份从零开始部署 Docker 编排项目的实用指南,帮助您掌握这一关键技术,提升应用程序管理的效率和灵活性。

项目准备

在本节中,我们将以 Java 项目为例,假设您已经拥有一个微服务架构的项目。整体项目结构可能会如下所示:

image

接下来,我们将逐步开始构建 Docker 容器,并按照一系列系统化的步骤来实现这一过程。

核心概念

我们首先将对一些基本概念进行详细解释,包括 Dockerfile、Docker 构建命令以及 docker-compose.yml 文件的基本概念介绍。理解这些概念后,我们将进入实际操作环节,通过实践加深对这些工具的掌握。

Dockerfile

Dockerfile 是一个文本文件,它包含了一系列构建 Docker 镜像所需的指令。这些指令不仅定义了镜像的基础环境,还详细描述了应用程序的安装步骤、所需的依赖关系、配置的环境变量,以及其他必要的设置。例如:

# 使用一个基础镜像
FROM maven:3.8.3-openjdk-17 AS builder# 设置工作目录
WORKDIR /app# 复制 pom.xml 和源代码
COPY pom.xml .
COPY src ./src# 构建项目
RUN mvn clean package# 使用一个轻量级的基础镜像运行应用
FROM openjdk:17-jdk-slim# 设置工作目录
WORKDIR /app# 从构建阶段复制 JAR 文件
COPY --from=builder /app/target/demo-0.0.1-SNAPSHOT.jar ./myapp.jar# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "myapp.jar"]

接下来,我们需要将这个配置应用到我们的项目中。为了演示的方便,我们使用了自定义的文件名称来启动项目,这样可以更清晰地展示每个步骤的具体过程。当然,你也可以选择使用默认的文件名,这样操作会更加简单直接。无论你选择哪种方式,最终的效果都是一样的。如下图所示:

image

构建命令

docker build 是构建 Docker 镜像的核心命令,它用于将 Dockerfile 中定义的指令转换为可执行的镜像。在执行这个命令时,你可以使用一系列可选参数,以便更好地定制构建过程。

docker build [OPTIONS] PATH | URL | -

PATH:指定包含 Dockerfile 的上下文路径。通常是当前目录(.)或具体的目录路径。

URL:可以是 Git 仓库的 URL,Docker 会从该地址获取 Dockerfile。

-:表示从标准输入读取 Dockerfile。

常用选项有以下这些:

  • -t, --tag:为镜像指定一个名称和标签。例如:-t myapp:latest。

  • -f, --file:指定 Dockerfile 的路径。

  • --no-cache:在构建时不使用缓存,确保每个步骤都从头开始运行。

  • --target:如果 Dockerfile 中定义了多阶段构建,可以通过这个选项指定要构建的目标阶段。

docker-compose.yml 文件

docker-compose.yml 文件是用于定义和运行多个 Docker 容器的配置文件,它使得管理应用程序的服务、网络和数据卷变得更加简便和高效。通过这个简单的 YAML 文件,你可以在一个统一的配置中描述整个应用的架构,使得容器的启动、停止和管理变得一目了然。在我们的示例程序中,我们包含了 MySQL 服务。

尽管我们本地已经有一个独立的 MySQL 实例,但为了更好地演示如何同时运行多个 Docker 容器,我们选择将 MySQL 作为一个 Docker 容器来启动。此外,值得一提的是,MySQL 已经有官方提供的预构建镜像,这意味着我们无需花费额外的精力去构建和配置数据库,直接使用现成的镜像即可。

现在,让我们开始这一过程吧!

version: '3.8'services:app:image: ccr.ccs.tencentyun.com/studiousxiaoyu/my-java-app:latest  # 替换为你的 Java 应用镜像ports:- "18080:18080"  # 映射端口environment:SPRING_DATASOURCE_URL: jdbc:mysql://db:13306/agent?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8SPRING_DATASOURCE_USERNAME: userSPRING_DATASOURCE_PASSWORD: passworddb:image: mysql:5.7  # 使用 MySQL 5.7environment:MYSQL_ROOT_PASSWORD: root_password  # 设置 root 用户密码MYSQL_DATABASE: agent  # 创建数据库MYSQL_USER: user  # 创建新用户MYSQL_PASSWORD: password  # 新用户密码ports:- "13306:13306"  # 映射 MySQL 端口volumes:- db_data:/var/lib/mysql  # 数据持久化volumes:db_data:  # 定义一个数据卷

你可以通过运行 docker-compose up 命令来启动所有在 docker-compose.yml 文件中定义的服务。

开始构建

假设我们已经将代码项目成功从仓库部署到了服务器上,接下来,我们就可以直接在服务器上进行操作了。如果你还没有安装过 Docker,可以先自行安装,过程并不复杂。

完成安装后,只需进入项目根目录,并执行相应的命令即可开始使用。

docker build -t my-java-app -f demo.dockerfile .

构建过程的具体步骤和流程如图所示:

image

我们可以耐心等待接下来的步骤完成,因为此时的过程与生产环境已经非常相似。接下来,我们只需将最终构建的镜像推送到我们的私有仓库中,以便进行后续的部署和管理。

镜像仓库

当然,公司的私有仓库地址是必不可少的。在这里,我们以腾讯云的容器镜像服务为例,来展示如何进行镜像的存储和管理。

推送私库

之前我们已经详细讲解过如何创建私有仓库的步骤,因此在此不再赘述。现在,我们可以直接将构建好的镜像推送到仓库中,以便进行后续的使用和管理。

image

接下来,我们将对我们的镜像进行标签操作,完成标签操作后,我们将镜像推送到私有仓库中,以便于后续的部署和使用。

sudo docker tag my-java-app:latest ccr.ccs.tencentyun.com/studiousxiaoyu/my-java-app:latest

sudo docker push ccr.ccs.tencentyun.com/studiousxiaoyu/my-java-app:latest

最后推送成功如下:

image

image

容器编排

接下来,我们将使用编排文件来定义和管理所需的服务。为了实现这一目标,我们需要在指定的目录下创建一个名为 docker-compose.yaml 的文件。该文件的内容将与我们之前展示的配置保持一致。

创建完文件后,我们将直接执行启动命令,来验证我们的配置是否正确,并观察各个服务是否能顺利启动。

docker-compose -f spring-ai.yaml up -d

image

最后看下日志,我们成功启动:

image

总结

通过本文,我们深入探讨了 Docker 的核心概念及其编排技术的重要性。从 Docker 的轻量级容器架构到其在现代 DevOps 环境中的应用,Docker 不仅提高了开发和部署的效率,还使得多容器管理变得更加高效。我们逐步介绍了 Dockerfile、构建命令及 docker-compose.yml 文件的使用,帮助读者掌握如何构建和管理微服务架构。

在具体操作中,我们以 Java 项目为例,通过实用的示范引导,展示了如何在本地环境中构建和部署 Docker 容器。随着项目规模的扩大,掌握 Docker 编排将显得尤为重要,它不仅简化了容器管理流程,还增强了应用的灵活性和可扩展性。希望本文所提供的指南对你有所帮助。

文章转载自:努力的小雨

原文链接:https://www.cnblogs.com/guoxiaoyu/p/18474742

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

相关文章:

从0到1实现项目Docker编排部署

在深入讨论 Docker 编排之前,首先让我们了解一下 Docker 技术本身。Docker 是一个开源平台,旨在帮助开发者自动化应用程序的部署、扩展和管理。自 2013 年推出以来,Docker 迅速发展成为现代软件开发和运维领域不可或缺的重要工具。 Docker 采…...

Mac软件推荐

Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka(付费) 视频播放IINA 视频下载Downie(付费) 屏幕刘海TopNotchMediaMate(付费)NotchDrop(付费&#x…...

No.4 笔记 探索网络安全:揭开Web世界的隐秘防线

在这个数字时代,网络安全无处不在。了解Web安全的基本知识,不仅能保护我们自己,也能帮助我们在技术上更进一步。让我们一起深入探索Web安全的世界,掌握那些必备的安全知识! 1. 客户端与WEB应用安全 前端漏洞&#xff1…...

Unity-Webview 使用指南

Unity-Webview 使用指南 Unity-Webview 主に gree/unity-webview のリファクタリング。本家を元に改良してく! [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/uni/Unity-Webview Unity-Webview 是一个专为 Unity 开发的 WebView 插件,使开…...

【Vue】自定义指令、插槽

目录 自定义指令 是什么 作用 使用方法 定义 使用 自定义指令配合绑定数据 语法 自定义指令的简写 语法 使用时机 插槽 什么是插槽 默认(匿名)插槽 ​编辑插槽的默认值 具名插槽 使用方法 简写 使用示例 作用域插槽 自定义指令 是什…...

AI - RAG中的状态化管理聊天记录

AI - RAG中的状态化管理聊天记录 大家好,今天我们来聊聊LangChain和LLM中一个重要的话题——状态化管理聊天记录。在使用大语言模型(LLM)的时候,聊天记录(History)和状态(State)管理是非常关键的。那我们先…...

微服务网关SpringCloudGateway、Kong比较

网关产品 1. Spring Cloud Gateway 基本信息 Spring Cloud Gateway是Spring Cloud生态系统中的一个组件,基于Spring 5、Project Reactor和Spring Boot 2构建。它旨在为微服务架构提供一种简单而有效的API网关解决方案。 功能特点 路由功能强大:使用Rou…...

MVC基础语法

文章目录 项目地址一、MVC的传值方式1.1 ViewBag和ViewData传值1.1.1 ViewBag1.1.2 ViewData 1.2 视图模型传值(ViewModel) 二、HttpConntext上下文三、中间件 项目地址 教程作者:誉尚学教育教程地址: https://www.bilibili.com…...

Web day09 会话技术 JWT令牌 Filter Interceptor

目录 会话技术: 1.Cookie: 2.Session: 3.令牌技术: JWT令牌: 生成JWT令牌: 校验JWT令牌(解析生成的令牌) 登陆时下发令牌: 过滤器Filter: 拦截器Inte…...

OpenCV相机标定与3D重建(14)用于组合两个旋转和平移(R|T)变换函数composeRT()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::composeRT 是 OpenCV 库中的一个函数,用于组合两个旋转和平移(R|T)变换。这个函数可以将两个连续的刚体变…...

leetcode33.搜索旋转排序数组

整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..…...

TMS Software:TMS BIZ产品——TMS XData

TMS XData 用于多层REST/JSON HTTP/HTTPS应用服务器开发和ORM远程处理的Delphi框架。 TMS扩展数据可同时用于以下框架&#xff1a; VCLWEBFMX TMS XData可同时用于以下操作系统/浏览器&#xff1a; TMS XData可同时用于以下IDE&#xff1a; 功能概述 基于REST/JSON架构风格的…...

leecode中的面试100题

isalnum函数用于检查一个字符是否为字母或数字。它的参数是一个int类型 isupper() 是大写 islower() 是小写 toupper() 变成大写 tolower() 变成小写 do while 首先不管怎么 先执行do一次 然后执行完了之后 在判断while如果符合while里面就继续执行do vector容器中insert…...

不同类型的集成技术——Bagging、Boosting、Stacking、Voting、Blending简述

目录 一、说明 二、堆叠 2.1 堆叠的工作原理&#xff1a; 2.2 例子&#xff1a; 2.3 堆叠的优点&#xff1a; 三、投票&#xff08;简单投票&#xff09; 3.1 例子&#xff1a; 3.2 投票的优点&#xff1a; 四、装袋和投票之间的区别 五、混合 6.1 混合的主要特征&#xff1a; …...

【从零开始入门unity游戏开发之——C#篇01】理论开篇

文章目录 前言前置条件什么是编程&#xff1f;什么是代码&#xff1f;什么是编程语言&#xff1f;常见的编程语言什么是C#&#xff1f;学习Unity为什么要先学习C#&#xff1f;选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...

TCP的“可靠性”(上)

目录 TCP的“可靠性”&#xff08;上&#xff09;确认应答&#xff08;可靠性传输的基础&#xff09;超时重传连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09; TCP的“可靠性”&#xff08;上&#xff09; 想必大家都或多或少的听说过TCP的特性&#xff1a;有连…...

Windows平台Unity3D下如何低延迟低资源占用播放RTMP或RTSP流?

技术探讨 自2017年我们发布跨平台的低延迟Unity下的RTSP|RTMP直播播放器后&#xff0c;Unity下的直播体验有了质的提升&#xff0c;特别是RTMP&#xff0c;从大家认知里面的几秒钟&#xff0c;直接缩减到100-300ms&#xff0c;满足了绝大多数场景下低延迟的技术诉求。今天就Un…...

burp的编解码,日志,比较器

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

Vercel部署前端部署

Vercel 部署 今天要讲的是如何对别人向自己的开源仓库提的PR进行自动代码审核 1. 注册并登录Vercel 访问 Vercel官网点击右上角的"Sign Up"选择使用GitHub、GitLab、Bitbucket或邮箱注册完成注册流程并登录 2. 连接代码仓库 在Vercel仪表板,点击"New Proje…...

Jenkins相关的Api接口调用详解

Jenkins API是Jenkins持续集成和持续部署(CI/CD)平台提供的一组接口,允许外部程序通过HTTP请求与Jenkins进行交互。以下是对Jenkins API使用的简介: 一、Jenkins API的主要功能 作业管理:通过API,可以创建、配置、删除以及查询作业(Job)。构建触发:可以远程触发新的构…...

HBU深度学习实验15-循环神经网络(2)

LSTM的记忆能力实验 飞桨AI Studio星河社区-人工智能学习与实训社区 (baidu.com) 长短期记忆网络&#xff08;Long Short-Term Memory Network&#xff0c;LSTM&#xff09;是一种可以有效缓解长程依赖问题的循环神经网络&#xff0e;LSTM 的特点是引入了一个新的内部状态&am…...

洛谷P1364 医院设置(c嘎嘎)

题目链接&#xff1a;P1364 医院设置 - 洛谷 | 计算机科学教育新生态 题目难度&#xff1a;普及/提高 数据规模与约定&#xff1a; 对于 100%100% 的数据&#xff0c;保证 1≤n≤1001≤n≤100&#xff0c;0≤u,v≤n0≤u,v≤n&#xff0c;1≤w≤1051≤w≤105。 解题思路&…...

Java死锁问题如何解决?

大家好&#xff0c;我是锋哥。今天分享关于【Java死锁问题如何解决&#xff1f;】面试题。希望对大家有帮助&#xff1b; Java死锁问题如何解决&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java中的死锁&#xff08;Deadlock&#xff09;是一种并发…...

go锁与chan的性能对比

锁的作用chan 的作用golang的数据并不是并发安全的为什么锁的性能更加优秀?如何选择? 锁的作用 解决并发安全问题,流程控制等 chan 的作用 线程通信(数据传输), 并发安全,流程控制 golang的数据并不是并发安全的 golang的变量并不是并发安全的锁与chan都可以解决并发安全…...

最小二乘法拟合出二阶响应面近似模型

背景&#xff1a;根据样本试验数据拟合出二阶响应面近似模型&#xff08;正交二次型&#xff09;&#xff0c;并使用决定系数R和调整的决定系数R_adj来判断二阶响应面模型的拟合精度。 1、样本数据&#xff08;来源&#xff1a;硕士论文《航空发动机用W形金属密封环密封性能分析…...

Scala的隐式转换

package hfdobject Test37 { //复习隐式转换//隐式转换&#xff1a;编译器 偷偷地&#xff0c;自动的帮我们把一种数据类型转换为另外一种类型//列如&#xff1a;int -->double//它有失败的时候&#xff08;double -->int),有成功的时候//当它转换失败的时候&#xff0c;…...

vue中父组件接收子组件的多个参数的方法:$emit或事件总线

方法一&#xff1a;使用 $emit 方法 原理 子组件通过 $emit 方法向父组件发送事件&#xff0c;同时可以传递多个参数&#xff0c;父组件通过事件监听来接收这些参数。 示例 子组件代码 <template><div><button click"sendData">发送数据</…...

网络安全法-网络安全支持与促进

第二章 网络安全支持与促进 第十五条 国家建立和完善网络安全标准体系。国务院标准化行政主管部门和国务院其他有关部门根据各自的职责&#xff0c;组织制定并适时修订有关网络安全管理以及网络产品、服务和运行安全的国家标准、行业标准。 国家支持企业、研究机构、高等学…...

prometheusgrafana实现监控告警

Prometheus负责集群数据的监控和采集&#xff0c;然后传递给grafana进行可视化&#xff0c;集成睿象云可实现监控报警&#xff0c;为了方便操作&#xff0c;可以通过iframe嵌套grafana到指定的页面。 文章目录 1.Grafana集成Prometheus2.iframe内嵌grafana3.监控告警 1.Grafana…...

php:完整部署Grid++Report到php项目,并实现模板打印

一、下载Grid++Report软件 路径:开发者安装包下载 - 锐浪报表工具 二、 安装软件 1、对下载的压缩包运行内部的exe文件 2、选择语言 3、 完成安装引导 下一步即可 4、接收许可协议 点击“我接受” 5、选择安装路径 “浏览”选择安装路径,点击"安装" 6、完成…...

【数据结构】基数排序的原理及实现

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在准备26考研 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章…...

Unix/Linux 命令行重定向操作

2>/dev/null 是一个常见的 Unix/Linux 命令行重定向操作&#xff0c;用于将标准错误&#xff08;stderr&#xff09;输出重定向到 /dev/null&#xff0c;即丢弃错误信息而不显示。理解这个表达式需要了解几个概念&#xff1a;文件描述符、重定向和特殊文件 /dev/null。 ###…...

leetcode周赛-3379. 转换数组

给你一个整数数组 nums&#xff0c;它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result &#xff1a; 对于每个下标 i&#xff08;其中 0 < i < nums.length&#xff09;&#xff0c;独立执行以下操作&#xff1a; 如果 nums[i] > 0&#xff1…...

D89【python 接口自动化学习】- pytest基础用法

day89 pytest的setup&#xff0c;setdown详解 学习日期&#xff1a;20241205 学习目标&#xff1a;pytest基础用法 -- pytest的setup&#xff0c;setdown详解 学习笔记&#xff1a; setup、teardown详解 模块级 setup_module/teardown_module 开始于模块始末&#xff0c;生…...

【Appium】AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘

目录 1、报错内容 2、解决方案 &#xff08;1&#xff09;检查 &#xff08;2&#xff09;报错原因 &#xff08;3&#xff09;解决步骤 3、解决结果 1、报错内容 在PyCharm编写好脚本后&#xff0c;模拟器和appium也是连接成功的&#xff0c;但是运行脚本时报错&…...

【机器人】轨迹规划 之 spline 规划

在轨迹规划中&#xff0c;使用 spline &#xff08;通常是指通过样条曲线进行轨迹规划&#xff09;可以实现平滑、连续的路径。以下是使用样条&#xff08;如B样条、三次样条插值&#xff09;的具体方法和步骤&#xff0c;结合一个简单的例子说明&#xff1a; 示例场景&#xf…...

健康管理系统(Koa+Vue3)

系统界面(源码末尾获取) 系统技术 Vue3 Koa Nodejs Html Css Js ....... 系统介绍 系统比较简单,轻轻松松面对结业课堂作业.采用的是基于nodejs开发的Koa框架作为后端,采用Vue框架作为前端,完成快速开发和界面展示. 系统获取 啊啊啊宝/KoaVue3https://gitee.com/ah-ah-b…...

【MySQL 进阶之路】基础语法及优化技巧

MySQL DML 基础语法及优化技巧 一、DML&#xff08;数据操作语言&#xff09;概述 DML 是数据库操作语言的子集&#xff0c;用于数据的增、删、改、查四个基本操作。MySQL 中的 DML 操作通常是指以下四种基本操作&#xff1a; INSERT&#xff1a;插入数据SELECT&#xff1a;…...

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 一、背景 肥料是农业生产中一种重要的生产资料&#xff0c;其生产销售必须遵循《肥料登记管理办法》&#xff0c;依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…...

体验AI直播:感受科技的魅力

​ 在当今这个科技飞速发展的时代&#xff0c;各种创新技术层出不穷&#xff0c;不断刷新着我们的认知和体验。其中&#xff0c;无人直播作为一种新兴的直播形式&#xff0c;正以其独特的魅力吸引着人们的目光。当我们真正去体验无人直播时&#xff0c;才能更深刻地感受到科技…...

NLP-中文分词

中文分词 1、中文分词研究背景及意义 和大部分西方语言不同&#xff0c;书面汉语的词语之间没有明显的空格标记&#xff0c;句子是以字串的形式出现。因此对中文进行处理的第一步就是进行自动分词&#xff0c;即将字串转变成词串。 比如“中国建筑业呈现新格局”分词后的词串…...

oracle 架构详解

Oracle 数据库是一个复杂且强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于企业级应用中。了解 Oracle 的架构对于数据库管理员&#xff08;DBA&#xff09;、开发人员和架构师来说至关重要。以下是 Oracle 数据库架构的详细解析&#xff0c;涵…...

东方资产管理校招笔试测评题型题目深入解读

东方资管作为四大资产AMC公司之一&#xff0c;其薪资待遇还是不错的&#xff0c;现在为数不多还可以投递简历的金融央企。东方资产管理校招笔试一般在简历投递截止后的周末&#xff0c;总部和子公司、分公司需要分别做笔试。 东方资管笔试大概2h&#xff0c;线上双机位&#x…...

PDF处理的创新工具:福昕低代码平台尝鲜实现PDF2word功能

在当今数字化时代&#xff0c;PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具&#xff0c;旨在简化PDF处理和管理的流程。通过这个平台&#xff0c;用户可以通过简单的拖拽界面上的按钮&#xff0c;轻松完成对Cloud API的调用工作流&#xff0c;而…...

springboot系列--拦截器加载原理

一、拦截器加载原理 拦截器是在容器启动时&#xff0c;就创建并加载好&#xff0c;此时并未放入拦截器链中&#xff0c;只是放在一个拦截器集合当中&#xff0c;当一个请求进来之后&#xff0c;会通过匹配路径&#xff0c;查看是否有命中集合中的拦截器的拦截路径&#xff0c;如…...

当Nginx所在服务器的磁盘空间满了,会有什么影响及如何避免这种问题

大家好&#xff0c;我是G探险者&#xff01; 最近遇到一个问题是&#xff0c;nginx所在服务器磁盘满了&#xff0c;导致前端页面上的一个文件上传功能不好使了&#xff0c;搞得我排查半天&#xff0c;找不见原因&#xff0c;最后发现是nginx的磁盘满了导致&#xff0c;清理了里…...

光猫开DMZ教程

本教程以移动光猫未例&#xff0c;具体操作以实际光猫为准 1、登录移动光猫管理后台 打开浏览器&#xff0c;在浏览器地址栏输入移动光猫登录管理地址192.168.1.1或者tplogin.cn 按“回车键”打开登录页面&#xff0c;然后输入路由器管理密码登录。 移动光猫登录页面 超级密…...

WireShark速成

1.WireShark安装 官网&#xff1a; Wireshark Go Deep Kali Linux系统自带WireShark工具。 2.WireShark介绍 WireShark是一个网络包分析工具&#xff0c;该工具主要用于捕获网络数据包&#xff0c;并自动解析数据包&#xff0c;为用户显示数据包的详情信息&#xff0c;供…...

BFS入门

目录 定义二叉树层次遍历电梯问题倒可乐BFS基本思想算法 四方访问 定义 BFS 通常是指广度优先搜索&#xff08;Breadth - First Search&#xff09;&#xff0c;它是一种图形数据结构的遍历算法。从给定的起始顶点开始&#xff0c;首先访问起始顶点的所有邻接顶点&#xff0c;然…...

ElementUI:el-tabs 切换之前判断是否满足条件

<div class"table-card"><div class"card-steps-class"><el-tabsv-model"activeTabsIndex":before-leave"beforeHandleTabsClick"><el-tab-pane name"1" label"基础设置"><span slot&…...