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

Docker架构深度解析:守护进程、客户端与存储驱动的协同作战(下)

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

🏅个人专栏:《Docker幻想曲:从零开始,征服容器宇宙》 🏅

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

目录

四、命名空间和控制组

1、Linux命名空间的作用和类型

2、控制组在Docker中的应用

五、容器与镜像管理

1、容器的生命周期管理

2、镜像的拉取、构建和推送过程

六、网络和存储

1、Docker网络模型和驱动

2、存储驱动和数据卷的作用

七、高级话题

1、Docker Compose和Swarm介绍

2、Kubernetes与Docker的关系与比较

八、总结

1、Docker架构发展历程

2、Docker架构未来趋势


四、命名空间和控制组

1、Linux命名空间的作用和类型

Linux命名空间(Namespace)是Linux内核提供的一种机制,用于隔离系统资源,使得不同进程看到的资源是不同的,从而实现了进程间的隔离和资源管理。命名空间技术是容器化技术的基础之一,它使得容器可以在一个隔离的环境中运行,互相之间不会产生影响。

作用:

  1. 进程隔离: 不同命名空间中的进程拥有自己独立的视图,互相之间不会感知到对方的存在,从而实现了进程之间的隔离。

  2. 网络隔离: 不同命名空间中的网络资源是隔离的,每个命名空间可以拥有自己的网络接口、IP地址、路由表等网络配置,从而实现了网络资源的隔离。

  3. 文件系统隔离: 不同命名空间中的文件系统是隔离的,每个命名空间可以拥有自己的文件系统挂载点,使得文件系统的操作在不同命名空间中互不干扰。

  4. 用户隔离: 不同命名空间中的用户和用户组是隔离的,每个命名空间可以拥有自己独立的用户和用户组列表,从而实现了用户隔离。

  5. PID隔离: 不同命名空间中的进程ID是隔离的,每个命名空间拥有自己独立的PID命名空间,使得进程ID在不同命名空间中具有不同的意义

类型:

  1. PID命名空间(pid): 用于隔离进程ID,使得在不同PID命名空间中的进程看到的进程ID是不同的。

  2. 网络命名空间(net): 用于隔离网络资源,包括网络接口、IP地址、路由表等。

  3. 挂载命名空间(mnt): 用于隔离文件系统挂载点,使得在不同挂载命名空间中的文件系统操作不会相互影响。

  4. UTS命名空间(uts): 用于隔离主机名和域名,使得在不同UTS命名空间中的主机名和域名是独立的。

  5. IPC命名空间(ipc): 用于隔离进程间通信资源,包括信号量、消息队列和共享内存等。

  6. 用户命名空间(user): 用于隔离用户和用户组,使得在不同用户命名空间中的用户和用户组列表是独立的。

通过组合不同类型的命名空间,可以实现对不同类型资源的细粒度隔离,从而为容器提供了一个独立、隔离的运行环境。 

2、控制组在Docker中的应用

 控制组(cgroups,也称为资源限制)在Docker 中扮演着至关重要的角色,它允许用户对容器内的资源进行限制和管理,确保不同容器之间的资源隔离和公平共享。

  1. 资源限制: 控制组允许用户限制容器使用的资源,如CPU、内存、磁盘I/O、网络带宽等。这样可以确保一个容器不会耗尽系统资源影响其他容器的正常运行。

  2. 优先级管理: 控制组允许用户设置容器的资源优先级,以确保关键服务的资源需求得到满足。例如,可以通过设置 CPU 的份额和优先级来保证关键服务的处理器时间。

  3. 资源统计: Docker 利用控制组来监视容器的资源使用情况,包括 CPU 使用率、内存占用、磁盘I/O等。这些统计信息可以帮助用户优化容器的配置和性能调优。

  4. 资源限制配额: 控制组可以设置资源配额,确保容器不会超出分配的资源限制。这有助于避免意外的资源耗尽,并提高系统的稳定性和可靠性。

  5. 自动调整: Docker 可以根据容器的资源使用情况动态调整控制组的限制,以适应系统负载的变化。这种自动调整可以提高资源利用率,并确保系统对突发负载的响应能力。

五、容器与镜像管理

1、容器的生命周期管理

Docker 容器的生命周期管理涵盖了容器的创建、启动、停止、重启、销毁等方面。

  1. 创建容器: 创建容器是指基于 Docker 镜像生成一个新的容器实例。可以通过 docker run 命令来创建容器,该命令会指定要使用的镜像以及容器的配置参数,如容器名称、端口映射、环境变量等。

  2. 启动容器: 创建容器后,需要通过 docker start 命令来启动容器。启动容器时,Docker 会根据容器配置加载相应的文件系统和网络配置,并启动容器内的应用程序。

  3. 停止容器: 当容器中的应用程序完成任务或需要停止时,可以使用 docker stop 命令来停止容器。停止容器会发送一个信号给容器内的进程,以请求其停止运行。

  4. 重启容器: 在某些情况下,需要重新启动容器,可以使用 docker restart 命令来重启容器。该命令会先停止容器,然后再启动它。

  5. 暂停和恢复容器: Docker 允许暂停和恢复容器的运行状态。可以使用 docker pause 命令暂停容器的运行,并使用 docker unpause 命令恢复容器的运行。

  6. 销毁容器: 当容器不再需要时,可以使用 docker rm 命令将其销毁。销毁容器会释放容器占用的系统资源,并从 Docker 主机中移除该容器的相关信息。

  7. 查看容器状态: 可以使用 docker ps 命令查看当前正在运行的容器列表,以及它们的状态和相关信息。可以使用 docker inspect 命令查看特定容器的详细信息。

2、镜像的拉取、构建和推送过程

镜像的拉取、构建和推送是 Docker 中常见的操作,用于获取现有镜像、构建新的镜像以及将镜像推送到远程仓库。

1. 镜像的拉取:

  • 用户可以使用 docker pull 命令从远程镜像仓库(如 Docker Hub)中拉取镜像到本地系统。例如,要拉取一个名为 nginx 的镜像,可以运行命令 docker pull nginx
  • Docker 会首先检查本地系统是否已经存在这个镜像,如果不存在或者需要更新,则会从远程仓库下载镜像的文件系统层。

2. 镜像的构建:

  • 用户可以通过编写 Dockerfile 来定义自定义的镜像。Dockerfile 是一个文本文件,其中包含了一系列指令,用于描述如何构建镜像。
  • 通过运行 docker build 命令并指定 Dockerfile 的路径,Docker 将会根据 Dockerfile 中的指令逐步执行构建过程,生成新的镜像。例如,运行命令 docker build -t myimage:latest . 将会构建一个名为 myimage 的镜像。

3. 镜像的推送:

  • 用户可以将本地构建的镜像推送到远程镜像仓库,以便其他用户或系统可以访问和使用。通常情况下,推送到 Docker Hub 是一个常见的选择,但也可以推送到其他的镜像仓库。
  • 运行命令 docker login 登录到远程仓库(如果需要认证)。
  • 运行命令 docker tag 给本地镜像打标签,指定镜像的名称和版本信息。例如,运行命令 docker tag myimage:latest username/repository:tag
  • 最后,运行命令 docker push 将标记过的镜像推送到远程仓库。例如,运行命令 docker push username/repository:tag

六、网络和存储

1、Docker网络模型和驱动

Docker 的网络模型和驱动是容器网络的核心组成部分,负责管理容器之间的通信以及容器与外部网络之间的连接。

1. 网络模型:

  • Docker 的网络模型是基于 Linux 的网络命名空间和虚拟网桥技术实现的。每个容器都会被分配一个独立的网络命名空间,使得容器之间的网络环境彼此隔离,可以拥有自己的网络接口、IP 地址和路由表。
  • Docker 默认提供了三种网络模式:bridge(桥接模式)、host(主机模式)和 none(无网络模式)。用户可以根据应用的需求选择不同的网络模式进行配置。

2. 网络驱动:

  • Docker 的网络驱动是实现容器网络功能的插件化组件,允许用户根据需要选择不同的网络驱动来实现容器的网络连接。
  • Docker 默认提供了多种网络驱动,包括 bridge(桥接驱动)、overlay(覆盖网络驱动)、macvlan(MACVLAN 驱动)等。每种网络驱动都有其特定的用途和适用场景。
  • bridge 驱动是 Docker 默认的网络驱动,用于在宿主机上创建一个虚拟网桥,使得容器可以通过该网桥连接到宿主机的物理网络。overlay 驱动用于跨主机之间创建覆盖网络,实现容器的跨主机通信。

3. 自定义网络:

  • Docker 允许用户创建自定义网络,以实现更灵活和定制化的网络配置。通过自定义网络,用户可以控制容器之间的通信方式、子网分配、DNS 设置等。
  • 用户可以使用 docker network create 命令创建自定义网络,并通过 --driver 参数选择网络驱动,指定网络的名称和其他配置选项。

2、存储驱动和数据卷的作用

存储驱动(Storage Driver):

  • 存储驱动是 Docker 用来管理容器镜像和容器数据的底层技术。它负责将容器的文件系统、元数据等数据存储到宿主机的文件系统中,并提供对这些数据的读写操作。
  • Docker 支持多种存储驱动,如 overlay2、aufs、btrfs、zfs 等。每种存储驱动都有其特定的特性和优劣势,用户可以根据需求选择合适的存储驱动来进行配置。
  • 存储驱动的选择会影响容器的性能、可靠性和存储特性,因此在进行容器部署和运行时需要考虑存储驱动的选择。

数据卷(Volume):

  • 数据卷是用于在容器之间共享数据、持久化存储数据的一种机制。它可以将宿主机的文件或目录挂载到容器内部,从而使得容器可以访问和修改宿主机上的文件系统。
  • 数据卷提供了持久化存储的能力,即使容器被删除,数据卷中的数据仍然保留。这使得容器可以在重新创建时保留之前的数据状态。
  • Docker 提供了多种类型的数据卷,如本地主机数据卷、命名数据卷、远程数据卷等。用户可以根据应用需求选择不同类型的数据卷进行配置和使用。

七、高级话题

1、Docker Compose和Swarm介绍

Docker Compose 和 Docker Swarm 都是 Docker 官方提供的工具,用于简化和管理容器化应用的部署和管理。它们都是 Docker 生态系统中的重要组件,但在功能和用途上有所不同。

Docker Compose:

  • Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。它允许用户使用 YAML 文件来定义应用的服务、网络和卷等配置,然后使用单个命令就可以启动、停止和管理整个应用。
  • Docker Compose 适用于在单个主机上快速启动和管理开发和测试环境。通过 Docker Compose,用户可以轻松地在开发环境中部署多个服务,并进行快速迭代和调试。
  • Docker Compose 支持声明式配置,并且可以与 Docker 引擎无缝集成,使得容器化应用的开发和测试过程更加简单和高效。

Docker Swarm:

  • Docker Swarm 是 Docker 官方提供的容器编排平台,用于在多个 Docker 主机上部署和管理容器化应用。它通过将多个 Docker 主机组成一个集群,并使用内置的调度器和管理器来协调容器的部署和运行。
  • Docker Swarm 提供了高可用性、伸缩性和安全性等特性,使得用户可以轻松地在生产环境中部署和管理容器化应用。它支持服务发现、负载均衡、滚动更新等功能,同时还提供了容器的自动恢复和故障转移等机制。
  • Docker Swarm 可以与 Docker Engine 无缝集成,并且提供了简单的命令行接口和 Web 控制台,使得用户可以方便地进行集群的管理和监控。

2、Kubernetes与Docker的关系与比较

Kubernetes(通常简称为 K8s)和 Docker 是两个不同但相关的技术,它们在容器化和容器编排领域扮演着不同的角色。

关系:

  • Docker 是一种容器化平台,提供了一套工具和技术,用于创建、打包和运行容器化应用。它包括 Docker Engine、Docker Compose、Docker Swarm 等组件,提供了从开发到部署的端到端解决方案。
  • Kubernetes 是一个开源的容器编排平台,用于在多个主机上管理和调度容器化应用。它提供了集群管理、自动扩展、服务发现、负载均衡、滚动更新等功能,使得容器化应用在生产环境中能够更加灵活、高效和可靠地运行。

比较:

  • 范围和定位: Docker 主要关注于容器的创建、打包和运行,是一种容器化平台。而 Kubernetes 则专注于容器编排和管理,用于在多个主机上部署和运行容器化应用。
  • 功能和特性: Docker 提供了包括容器引擎、容器编排工具、镜像仓库等在内的一整套容器化解决方案。而 Kubernetes 则提供了更为丰富和复杂的功能,如服务发现、负载均衡、自动伸缩、滚动更新等,使得容器化应用能够在分布式环境中更加灵活和强大。
  • 易用性和学习曲线: Docker 的学习曲线相对较低,提供了简单易用的命令行接口和图形化界面,适合于开发人员和小型团队使用。而 Kubernetes 的学习曲线相对较陡,需要理解复杂的概念和机制,适合于大型团队和复杂应用的部署和管理。
  • 生态系统和社区支持: Docker 有一个庞大的生态系统和活跃的社区支持,提供了丰富的插件和工具,适用于不同场景和需求。而 Kubernetes 也拥有强大的生态系统和广泛的社区支持,提供了各种扩展和集成方式,适用于不同规模和复杂度的应用场景。

八、总结

1、Docker架构发展历程

起初,Docker采用了典型的客户端-服务器(CS)架构设计,通过Client端与Server端的通信,实现了构建、运行和分发Docker容器的功能。这种设计使得Docker能够灵活地在各种环境中运行,并提供了多种通信方式,如Unix套接字、Restful API、网络接口和命令行等。

随着Docker的不断发展,其架构也经历了一系列的演进。原有的引擎功能逐渐下沉到containerd,这使得containerd逐渐独立于Docker,成为一个通用的容器运行时工具。同时,swarm功能也被整合入引擎,swarmkit模块不断弱化,最终将被引擎吸收。这些变化使得Docker的架构更加核心化,引擎集群化,提高了Docker的性能和稳定性。

此外,Docker的内部功能也在不断解耦,新的功能模块不断被加入,使得Docker的功能更加丰富和强大。例如,Docker在镜像管理、容器编排、网络管理等方面都进行了大量的优化和改进,为用户提供了更加便捷和高效的使用体验。

2、Docker架构未来趋势

展望未来,Docker的架构将继续朝着更加核心化、集群化的方向发展。随着容器技术的不断成熟和普及,Docker将更加注重与云原生技术的融合,为用户提供更加全面的解决方案。

Docker还将在安全性和稳定性方面进行更多的投入。随着容器在生产环境中的广泛应用,安全性和稳定性成为了用户最为关心的问题。因此,Docker将加强在容器安全、隔离性、故障恢复等方面的研究和开发,为用户提供更加可靠和安全的容器运行环境。

Docker还将继续加强与开源社区的合作,推动容器技术的不断发展和创新。开源社区是Docker发展的重要推动力,通过与开源社区的合作,Docker可以获取更多的技术资源和创新思路,推动容器技术的不断进步。

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Docker的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!! 

相关文章:

Docker架构深度解析:守护进程、客户端与存储驱动的协同作战(下)

🐇明明跟你说过:个人主页 🏅个人专栏:《Docker幻想曲:从零开始,征服容器宇宙》 🏅 🔖行路有良友,便是天堂🔖 目录 四、命名空间和控制组 1、Linux命名空…...

【强化学习笔记一】初识强化学习(定义、应用、分类、性能指标、小车上山案例及代码)

文章目录 第1章 初识强化学习1.1 强化学习及其关键元素1.2 强化学习的应用1.3 强化学习的分类1.3.1 按任务分类1.3.2 按算法分类 1.4 强化学习算法的性能指标1.5 案例:基于Gym库的智能体/环境接口1.5.1 安装Gym库1.5.2 使用Gym库1.5.3 小车上山1.5.3.1 有限动作空间…...

安卓面试准备汇总

java相关 面试-java基础相关-CSDN博客 android 基础相关 安卓基础面试题-CSDN博客 kotlin相关 android pms,cms,wms相关知识 android fragmework层的知识 项目相关的...

C#+datax实现定时增量同步

要使用C#和DataX实现定时增量同步,你可以使用以下步骤: 1. 安装DataX:首先,确保你已经安装了DataX。你可以从DataX的官方仓库中获取最新版本。 2. 配置DataX 任务:创建一个DataX任务,定义源(sou…...

VUE实现Provide的计算属性

通过此篇可以学到: 如何使用Providerinject进行“跨代”传值如何实现一个计算属性的Provider如何解决告警“injection "xxxxx" not found. ” 一、描述 目前需要创建一个计算属性传入Provide,并且能够被其他组件Inject 二、实现 父组件 .…...

Spring Schedule:Spring boot整合Spring Schedule实战讲解定时发送邮件的功能

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…...

Midjourney绘图欣赏系列(十)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…...

【C语言】人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…...

船舶AIS监控网络-船位信息查询:实时查询船舶动态,服务于船舶安全航行管理、港口调度计划、物流、船代、货代。【AIS动态信息编写船舶轨迹】

文章目录 引言I 预备知识1.1 相关术语1.2 主要功能1.3 MongoDB和Es各自优势II 系统架构2.1 电子海图开源JavaScript包2.2 地图渲染库2.3 地图服务调用(天地图)2.4 在Elasticsearch(ES)中存储船舶轨迹数据III 数据同步方案3.1 基于 Binlog 实时同步3.2 数据迁移工具:Canal3.3…...

Axios 中的文件上传(Upload File)方法

Axios 提供了多种上传文件(Upload File)的方法,适用于不同的上传场景。以下是其中几种常用的方法: 1. 使用 FormData 对象FormData是一个用于创建表单数据的 API,可用于发送包含文件和其他表单数据的multipart/form-d…...

机试:数塔路径

问题描述: 代码示例: //数塔路径 #include <bits/stdc.h>using namespace std;int main(){ // 算法思想: // 逆推,将最下方和右下方的数字进行比较,哪个大则加上并更新,直至到根节点即为最大 int n;cin >> n; int nums[n1][n1]; // 输入数塔 for(int i 1;i < n…...

ROS2中launch编写及参数含义(xml、python)

ROS2系列文章目录 ROS2中nav_msgs/msg/Path 数据含义及使用 ROS2中std_msgs/msg/Header 数据含义及使用 ROS中TF变换详解 文章目录 ROS2系列文章目录ROS2中launch编写及参数含义&#xff08;xml、python&#xff09;一、ROS官方介绍二、实现案例1.编写主函数、CMakeLists.tx…...

鸿蒙Socket通信示例(TCP通信)

前言 DevEco Studio版本&#xff1a;4.0.0.600 参考链接&#xff1a;OpenHarmony Socket 效果 TCPSocket 1、bind绑定本地IP地址 private bindTcpSocket() {let localAddress resolveIP(wifi.getIpInfo().ipAddress)console.info("111111111 localAddress: " …...

yolov5-v6.0详细解读

yolov5-v6.0详细解读 一、yolov5版本介绍二、网络结构2.1 Backbone特征提取部分2.1.1 ConvBNSiLU模块2.1.2 C3模块2.1.2.1 BottleNeck模块 2.1.3 SPPF模块 2.2 Neck特征融合部分2.2.1 FPN2.2.2 PANet 2.3Head模块 三、目标框回归3.1 yolo标注格式3.2 yolov4目标回归框3.3 yolov…...

FPGA - 单总线协议(one-wire)

1&#xff0c;简介 单总线&#xff08;one-wire&#xff09;是美国 DALLAS 公司推出的外围串行扩展总线技术&#xff0c;与 SPI、I2C 等串行数据通信方式不同&#xff0c;它采用单根信号线&#xff0c;既传输时钟又传输数据&#xff0c;而且数据传输是双向的。它具有节省 I/O口…...

python的函数与类的定义

目录 1.函数 1.函数的定义 2.输入参数与输出参数的类型 3.输入和输出多个参数 1.普通参数 2.含有任意数量的参数 3.关键字参数 4.普通参数与多个参数的结合 2.类 1.类的定义 2.类的实例化 3.继承 1.函数 1.函数的定义 def 函数名(输入参数): 文档字符串 函数体 …...

Parade Series - WebRTC ( < 300 ms Low Latency ) T.B.D

Parade Series - FFMPEG (Stable X64) C:\Conda\parading-cam>ffmpeg -f dshow -i video"Surface Camera Front" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -an -rtsp_transport tcp -f rtsp://127.0.0.1:8554/cam0801...

【ARM】MDK在programming algorithm界面添加FLM

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 解决在programming algorithm界面中无法添加想要的Flash编程算法的问题 2、 问题场景 在对于Debug进行Flash Download进行配置的时候&#xff0c;在programming algorithm界面中有对应的Flash编程算法。可以通过…...

springmvc学习笔记1

springmvc学习笔记part1 总概述图创建步骤创建project并在父工程中导入配置类添加为web工程检查maven配置写handller方法写配置类SpringMVC环境搭建项目部署关键步骤总结 具体设置路径设置注解接收参数&#xff08;重点param参数接收路径参数接收json参数接收请求头接收和cooki…...

力扣106 从中序与后续遍历序列构造二叉树

文章目录 题目描述解题思路代码 题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], …...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...