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

docker1

前言

技术架构

在这里插入图片描述

单机架构

在这里插入图片描述

应用数据分离架构

在这里插入图片描述

应用服务集群架构

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

读写分离/主从分离架构

在这里插入图片描述
在这里插入图片描述
写入主的时候,要同步Mysql从的数据才可以

冷热分离架构

在这里插入图片描述
在这里插入图片描述
写的时候要写入主和缓存数据库
读的时候先去缓存看有没有,没有的话就去从数据库读数据
主要就是看这个数据是冷门的还是热门的了
缓存数据库就是redis

在这里插入图片描述
这个热点的返回数据非常快
缺点就是万一一个表数据太多了,有千万级别,那么一个数据库存的数据就太多了

垂直分库架构

在这里插入图片描述
就是分库分表
在这里插入图片描述
可以用mycat,tddl来分库分表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们可以直接用分布式数据库了
在这里插入图片描述

最下面的都是集群的东西

数据库都采用了集群化

缺点就是:我们改代码的时候就要停服,重新发布版本

微服务架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

容器编排架构

在这里插入图片描述
在这里插入图片描述
容器与容器之间不会冲突

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果没有k8s的话,就会布置很多微服务,要把jar包布置6份
有k8s,直接一键式布置这6个微服务,只需要一份,就可以一键式

不然就要慢慢布置了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实战架构

在这里插入图片描述

Docker使用

容器技术发展史

jail时代

云时代
云:分布式的
隔离已经用Linux实现了
资源隔离
解决海量数据处理

云原生时代:k8s,docker

在这里插入图片描述

虚拟化与容器化

笔记本电脑就是物理机

一台操作系统上装了很多操作系统就是虚拟化
虚拟化出来的叫做虚拟机

容器化:就是虚拟的软件层,操作系统的虚拟化,虚拟化的一种

docker是容器化的一种

虚拟化容器化优点:资源利用率高,因为划的很细
环境一致性
资源可以弹性收缩
物理机上可以装不同的操作系统,环境不同
容器比虚拟机启动更快
docker不需要虚拟内核,相当于不用开机了
而且很容易维护和扩展
在这里插入图片描述
应用程序执行环境分层

容器是虚拟化的操作系统

虚拟化常见类别
:虚拟机:伪造的硬件层
:JVM:伪造应用程序层和函数库层

常见虚拟化实现:
主机虚拟化实现:模拟了所有的硬件
容器虚拟化实现
在这里插入图片描述
在这里插入图片描述
这就是主机虚拟化
就是在物理服务器上安装了一个软件,一个虚拟化层,变成可视化的了

容器虚拟化实现

实现原理:操作系统层的虚拟化
在这里插入图片描述
容器是轻量级的
而且容器之间是不影响的
资源之间是隔离的

Namespace

在这里插入图片描述
可以只让A进程只看到A的资源,B进程只看到B的资源

在这里插入图片描述
这些就是隔离的内核资源

意思就是就算是两个进程运行在同一个主机上,但是可以有不同的主机名和域名

两个进程看到的都是80端口
但是却不是同一个端口

在这里插入图片描述

NameSpace实战基础知识

dd命令

在这里插入图片描述
在这里插入图片描述
if=文件名 ------》输入文件名

of=文件名 ------》输出文件名
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
sync:将每个输入块填充到ibs个字节,不足部分用空NUL字符补齐

在这里插入图片描述

生成镜像文件

在这里插入图片描述
我们这个是输入文件
dev/zero是系统的一个特殊的文件设备,它会连续不断地产生空白字符流
在这里插入图片描述
生成一个空白的镜像文件

bs就是指定大小
count就是产生文件数量
在这里插入图片描述
在这里插入图片描述
这样我们就产生了空白的文件
加上 -h 选项后,文件大小会以更直观的单位(如 KB、MB、GB 等)来展示

在这里插入图片描述
这样就生成了80M的文件
转换为大写
在这里插入图片描述
dd if=in.txt of=out.txt conv=ucase

在这里插入图片描述
dd就是完成一个读取转换输出的操作

mkfs

用于在设备上创建Linux文件系统,俗称格式化,比如我们使用 U盘的时候可以格式化。

语法

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
• 参数

-t fstype:指定要建立何种文件系统;如ext3,ext4 —》磁盘类型ext4 用的比较多
filesys :指定要创建的文件系统对应的设备文件名;
blocks:指定文件系统的磁盘块数。 -V : 详细显示模式
fs-options:传递给具体的文件系统的参数
-v 表示显示详情
• 实例
#将sda6 分区格式化为ext4格式
mkfs -t ext4 /dev/sda6
#格式化镜像文件为ext4
mkfs -t ext4 ./fdimage.img
把我们镜像的文件格式化为磁盘

mkfs -t ext4 ./test.img
在这里插入图片描述
这样就完成了

这个命令就是把硬盘u盘或者空白文件格式化
就是创建了一个指定的Linux文件系统

df

df 命令详解
Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使
用情况统计。
• 语法
df [OPTION]… [FILE]…----》看这个目录的文件占有情况
• 常见参数
○ -a, --all 包含所有的具有 0 Blocks 的文件系统
○ -h, --human-readable 使用人类可读的格式(预设值是不加这个选项的…)
○ -H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
○ -t, --type=TYPE 限制列出文件系统的 TYPE
○ -T, --print-type 显示文件系统的形式
• 案例
#查看磁盘使用情况
df -h
#查看磁盘的系统类型
df -Th

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指定要ext4类型的
在这里插入图片描述
打印了类型
df -T /data
这样就是指定目录下的文件系统的详细信息
在这里插入图片描述
H与h就是容量的单位变了

mount

mount 命令详解
mount 命令用于加载文件系统到指定的加载点(相当于查u盘的时候,添加了一个盘,windows是自动挂载上去的)。此命令的也常用于挂载光盘,使我们
可以访问光盘中的数据,因为你将光盘插入光驱中,Linux 并不会自动挂载,必须使用
Linux mount 命令来手动完成挂载。
Linux 系统下不同目录可以挂载不同分区和磁盘设备,它的目录和磁盘分区是分离的,
可以自由组合(通过挂载)
不同的目录数据可以跨越不同的磁盘分区或者不同的磁盘设备。
挂载的实质是为磁盘添加入口(挂载点)。
• mount 常见用法
mount [-l]
mount [-t vfstype] [-o options] device dir
• 常见参数
-l:显示已加载的文件系统列表;
-t: 加载文件系统类型支持常见系统类型的 ext3,ext4,iso9660,tmpfs,xfs 等,大部分情况
可以不指定,mount 可以自己识别
-o options 主要用来描述设备或档案的挂接方式。
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
device: 要挂接(mount)的设备。就是u盘的文件系统,相当于u盘
dir: 挂载点的目录,挂在哪个目录下面,挂载u盘的地方
• 案例
#将 /dev/hda1 挂在 /mnt 之下。
mount /dev/hda1 /mnt
#将镜像挂载到/mnt/testext4 下面,需要确保挂载点也就是目录存在
mkdir -p /mnt/testext4
mount ./fdimage.img /mnt/testext4

挂载之前需要一个文件系统,就是磁盘
在这里插入图片描述

我们可以格式化一下test.img
在这里插入图片描述
这个问的是已经有了一个ext4的文件系统
这样就格式化成功了
这样就是一个空白的文件系统了
就可以挂载了

挂载到某个目录就要先创建这个目录
在这里插入图片描述
mount ./test.img /data/testmymount/
这个就是把./test.img挂载到/data/testmymount/
在这里插入图片描述
df -h就可以查看了

在这里插入图片描述
这样我们就把一个空白的镜像文件,挂载成了一个磁盘
然后这个磁盘可以正常的读写

unshare

unshare 命令详解
unshare 主要能力是使用与父程序不共享的名称空间运行程序。就是不共享Namespace
• 语法
unshare [options] program [arguments]
program 是具体的程序–》与父程序不共享命名空间
options是参数
• 常用参数
参数 含义
-i, --ipc 不共享 IPC 空间,进程间通信
-m, --mount 不共享 Mount 空间,文件系统
-n, --net 不共享 Net 空间,网络
-p, --pid 不共享 PID 空间,进程
-u, --uts 不共享 UTS 空间,主机名,网络名
-U, --user 不共享用户,用户信息
-V, --version 版本查看,
–fork 执行 unshare 的进程 fork 一个新的子进程,在子进
程里执行 unshare 传入的参数。启动一个新的子进程,而不是让现在这个进程作为父进程

–mount-proc 执行子进程前,将 proc 目录优先挂载过去
在这里插入图片描述
proc 目录下有很多进程,不写这个的话就会看到proc下的所有进程信息

• 案例
#hostname 隔离
root@139-159-150-152:~# unshare -u /bin/bash
root@139-159-150-152:~# hostname test1
root@139-159-150-152:~# hostname
test1
root@139-159-150-152:~# exit
exit
root@139-159-150-152:~# hostname
139-159-150-152
root@139-159-150-152:

我们用的主机隔离
unshare -u /bin/bash
在这里插入图片描述
bash是一个程序

现在已经进入了一个子进程的命令空间了

hostname test1
指定主机名
在这里插入图片描述
这个是查看主机名

我们在启动一个xshell

在这里插入图片描述
可以看到主机名不是新的
在这里插入图片描述
这里退出的是子进程

在这里插入图片描述
我们发现名字又变回去了

注意如果要显示ip的话
就是要写hostname -I

所以unshare就是做到了命名空间的隔离

PID隔离

  1. 在主机上执行 ps -ef,可以看到进程列表如下,其中启动进程 PID 1 为 init 进程
  2. 我们打开另外一个 shell ,执行下面命令创建一个 bash 进程,并且新建一个 PID
    Namespace:
    –fork 新建了一个 bash 进程,是因为如果不建新进程,新的 namespace 会用 unshare
    的 PID 作为新的空间的父进程,而这个 unshare 进程并不在新的 namespace 中,所
    以会报个错 Cannot allocate memory
    –pid 表示我们的进程隔离的是 pid,而其他命名空间没有隔离
    mount-proc 是因为 Linux 下的每个进程都有一个对应的 /proc/PID 目录,该目录包含
    了大量的有关当前进程的信息。 对一个 PID namespace 而言,/proc 目录只包含当前
    namespace 和它所有子孙后代 namespace 里的进程的信息。创建一个新的 PID
    namespace 后,如果想让子进程中的 top、ps 等依赖 /proc 文件系统的命令工作,还
    需要挂载 /proc 文件系统。而文件系统隔离是 mount namespace 管理的,所以 linux
    特意提供了一个选项–mount-proc 来解决这个问题。如果不带这个我们看到的进程还
    是系统的进程信息。
    Shell
    unshare --fork --pid --mount-proc /bin/bash
  3. 执行 ps -ef 查看进程信息,我们可以看到此时进程空间内的内容已经变了,而且
    启动进程也变成了我们的 bash 进程。说明我们已经看不到主机上的进程空间了,我们
    的进程空间发生了隔离。
    4.执行 exit 退出进程

在这里插入图片描述
这里报了一个错
因为我们这里的父进程是shell,它有PID
shell内部新启动的bash进程,看不见shell的信息,因为PID已经发生了隔离,因为是shell
所以bash启动的时候,没有自己的父进程,因为已经隔离了,就会报这个错
如果要正常运行的话,就要床加你一个全新的进程
加一个参数,让你和启动你的这个进程没有什么关系
先exit退出

在这里插入图片描述
unshare -p --fork /bin/bash

这样就完成了PID的隔离了

接下来我们来看我们启动的新进程和我们宿主机上的进程是否一样
启动的新进程就是bash

我们再打开另一个xshell

两个均执行ps-ef

在这里插入图片描述
在这里插入图片描述
我们可以发现进程是一样的说明进程并没有隔离

因为proc目录下有很多进程的PID
执行ps -ef的时候
全部都列了出来
这时候就要用–mount-proc这个了
这个就是执行子进程前,先把proc目录挂载在过去
挂载过去之后,我们的proc目录就没有这些现有的信息了

再次exit

unshare -p --fork --mount-proc /bin/bash

在这里插入图片描述
可以发现现在的proc目录下的进程id就很少了

原来的是很多的

现在在执行ps -ef
在这里插入图片描述

在这里插入图片描述
看的PID为一的就是我们自己指定的程序

这样就实现了PID的隔离

-p表示隔离pid
–fork表示我们要启动新的一个进程

Mount 隔离

  1. 打开第一个 shell 窗口 A,执行命令, df -h ,查看主机默认命名空间的磁盘挂载情
  2. 打开一个新的 shell 窗口 B,执行 Mount 隔离命令
  3. 在窗口 B 中添加新的磁盘挂载
  4. 在窗口 B 挂载的磁盘中添加文件
  5. 查看窗口 B 中的磁盘挂载信息
  6. 查看窗口 A 中的磁盘挂载信息
  7. 查看窗口 B 中的文件信息
  8. 查看窗口 A 中的文件信息,可以看到窗口 B 中新建的文件和磁盘挂载在主机的窗
    口中并没有,说明我们实现了文件系统隔离。
  9. 窗口 B 执行 exit,退出

我们先创建一个mount隔离的进程
unshare --mount --fork /bin/bash
在进程里面创建一个空白文件
dd if=/dev/zero of=data2.img bs=8k count=10240
在这里插入图片描述

然后挂载为一个磁盘–》挂载点
先格式化
mkfs -t ext4 ./data2.img
在这里插入图片描述
然后就是挂载了

在这里插入图片描述
这是我们全部的挂载点

挂载之前我们还要先指定我们挂在点目录

mkdir -p /data/maxhou/data2mount
然后开始挂载
mount -t ext4 ./data2.img /data/maxhou/data2mount/
在这里插入图片描述
这样就挂载成功了
df -h

在这里插入图片描述
这样就说明了我们完成了data2mount的挂载点的创建了

然后我们在外面能不能看见这个挂载点

df -h

在这里插入图片描述
这个就说明了我们创建的挂载点在外面是看不到的,这就是mount隔离
我们在这个挂载点里面写文件
外面都看不见的

在这里插入图片描述
在这里插入图片描述

可以发现文件根本找不到,但是目录确实可以找到的
这个磁盘的挂载点也是看不见的

往里面放文件别人就看不见了

删除挂载点

使用 umount 命令
语法格式:umount [选项] 挂载点或umount [选项] 设备。例如要卸载/mnt/data这个挂载点,可以执行umount /mnt/data。如果知道挂载的设备,也可以使用umount /dev/sdb1来卸载,前提是/dev/sdb1对应的挂载点没有被其他进程占用。
常用选项
-l:lazy unmount,即延迟卸载。如果设备忙,它会将卸载操作推迟到设备不再忙的时候。
-f:强制卸载,一般在正常卸载失败时使用,但可能会导致数据丢失或文件系统损坏,需谨慎使用。

在这里插入图片描述
值得注意的就是,这个挂载点是从根目录开始设置的
与当前所在文件没有关系

在这里插入图片描述
当你在执行 rm -fr data 命令时遇到 rm: cannot remove ‘data/testmymount’: Device or resource busy 错误,这表明 data/testmymount 是一个挂载点,并且当前有进程正在使用该挂载点上的资源,所以无法直接删除它。你可以按照以下步骤解决这个问题:

  1. 确定挂载信息
    使用 mount 命令查看系统的挂载信息,确认 data/testmymount 是否为挂载点以及挂载的设备。
    mount | grep data/testmymount
    这个命令会过滤出与 data/testmymount 相关的挂载信息,你可以从中了解到挂载的设备(例如 /dev/sdb1)等详细内容。
  2. 找出占用挂载点的进程
    使用 lsof 命令找出正在使用该挂载点的进程:
    lsof +D data/testmymount
    该命令会列出所有正在访问 data/testmymount 目录及其子目录的进程。你会看到输出中包含进程的 PID(进程 ID)、进程名等信息。
  3. 终止占用挂载点的进程
    根据上一步得到的 PID,使用 kill 命令终止这些进程。例如,如果 PID 为 1234 的进程正在占用挂载点,你可以执行:
    kill 1234
    如果该进程无法正常终止,可以使用强制终止的方式:
    kill -9 1234
    不过,使用 -9 选项强制终止进程可能会导致数据丢失或其他问题,所以要谨慎使用。
  4. 卸载挂载点
    在终止所有占用挂载点的进程后,使用 umount 命令卸载挂载点:
    umount data/testmymount

如果卸载时仍然提示设备忙,可以尝试使用 umount -l 进行延迟卸载:
umount -l data/testmymount

-l 选项会将卸载操作推迟到挂载点不再被使用时执行。
5. 删除目录
在成功卸载挂载点后,你就可以安全地删除 data 目录了:
rm -fr data

通过以上步骤,你应该能够解决因挂载点被占用而无法删除目录的问题。

总结

相关文章:

docker1

前言 技术架构 单机架构 应用数据分离架构 应用服务集群架构 读写分离/主从分离架构 写入主的时候,要同步Mysql从的数据才可以 冷热分离架构 写的时候要写入主和缓存数据库 读的时候先去缓存看有没有,没有的话就去从数据库读数据 主要就是看这个数据是…...

RocketMQ延迟消息深度解析:原理、实践与性能调优

RocketMQ延迟消息深度解析:原理、实践与性能调优 编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793 DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039 一、…...

RabbitMQ 高级特性解析:RabbitMQ 消息可靠性保障 (上)

RabbitMQ 核心功能 RabbitMQ 高级特性解析:RabbitMQ 消息可靠性保障 (上)-CSDN博客 RabbitMQ 高级特性:从 TTL 到消息分发的全面解析 (下)-CSDN博客 前言 最近再看 RabbitMQ,看了看自己之前写…...

大白话JavaScript实现一个函数,将数组中的元素进行去重

大白话JavaScript实现一个函数,将数组中的元素进行去重 答题思路 要实现数组元素去重的函数,核心思路是遍历数组,然后判断每个元素是否已经在新数组里存在,如果不存在就添加进去,存在则跳过。下面会介绍几种不同的实…...

PQL查询和监控各类中间件

1 prometheus的PQL查询 1.1 Metrics数据介绍 prometheus监控中采集过来的数据统一称为Metrics数据,其并不是代表具体的数据格式,而是一种统计度量计算单位当需要为某个系统或者某个服务做监控时,就需要使用到 metrics prometheus支持的met…...

uni_app实现下拉刷新

1. 在页面配置中启用下拉刷新 首先,你需要在页面的 pages.json 文件中启用下拉刷新功能。 {"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "首页","enablePull…...

C#类型转换基本概念

一、基本定义‌ C# 类型转换是将数据从一种类型转换为另一种类型的过程,分为 ‌隐式转换‌ 和 ‌显式转换‌ 两类‌。 强类型语言特性‌:C# 要求变量类型在编译时确定,类型转换需满足兼容性或显式规则‌。目的‌:处理不同数据类…...

【学习笔记】【DeepSeek AI 医生】2-2 AI家庭医生课程内容介绍

【DeepSeek AI 医生】2-4 项目详细分析及DeepSeek适用场景 一、Ollama部署二、可视化UI三、构建项目环境四、搭建项目架构五、Spring Al六、SSE服务端推送事件七、数据持久化八、线上部署 一、Ollama部署 Mac部署windows 部署ollama脚本、常用命令DeepSeek 提示词、角色、适用…...

DeepSeek使用教程--让DeepSeek生成精准题库

想让DeepSeek出好题,关键在于提示词的设计。总结了一个基本模板: 请帮我生成一套关于[学科/知识点]的题目,包括[题型],难度为[简单/中等/困难],适合[年级/学习阶段]的学生,总共[数量]道题。每道题请提供详细…...

数学之约数个数定理-阶乘约数

题目: 定义阶乘 n!123⋅⋅⋅n。 请问 100!(100的阶乘)有多少个正约数。 们需要计算 100! 的正约数的个数。阶乘 100! 的定义是: 100!123⋯100 直接计算 100!的值是不现实的,因为它是一个非常大的数。因此&#xf…...

C语言学习笔记-进阶(7)字符串函数3

1. strstr的使用和模拟实现 char * strstr ( const char * str1, const char * str2); Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1. (函数返回字符串str2在字符串str1中第⼀次出现的位置&#x…...

快乐数 力扣202

一、题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&…...

Cpu100%问题(包括-线上docker服务以及Arthas方式进行处理)

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

近三年图像超分辨率研究进展综述(轻量化方向)

一、图像超分辨率技术的近三年核心进展 1. 轻量化网络设计突破 轻量化模型是端侧部署的关键,近三年研究主要围绕参数压缩与计算效率提升展开: 11卷积与通道优化:SCNet提出全11卷积架构,通过逐点卷积替代传统33卷积,在保持重建质量的同时将模型参数减少60%以上。该设计通…...

成都亚恒云知教育咨询公司:绘画的风格如何学习与确定?

宝子们,好久不见! 最近收到好多同学发给我们成都亚恒云知教育咨询有限公司创作的作品,同时也收到了有很多乖乖的询问:关于绘画,老师我没有属于自己的风格,怎么才能画出属于自己的风格的作品啊,…...

数据结构篇——串(String)

一、引入 在计算机中的处理的数据内容大致可分为以整形、浮点型等的数值处理和字符、字符串等的非数值处理。 今天我们主要学习的就是字符串数据。本章主要围绕“串的定义、串的类型、串的结构及其运算”来进行串介绍与学习。 二、串的定义 2.1、串的基本定义 串(s…...

Qwen架构与Llama架构的核心区别

我们在讨论Deepseek不同版本之间的区别时了解到,DeepSeek-R1的蒸馏模型分为Qwen和Llama两个系列,包括Qwen系列的0.5B、1.5B、3B、7B、14B、32B、72B和Llama系列的8B、70B。Qwen系列以阿里通义千问(Qwen)为基础模型架构(具体是Qwen-2.5),Llama系列以Meta的Llama为基础模型…...

uniapp或者vue 使用serialport

参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位:否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…...

Linux和gcc/g++常用命令总结

目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …...

Vue3路由组件和一般组件 切换路由时组件挂载和卸载 路由的工作模式

路由组件和一般组件 路由组件 一般放到pages或view目录 一般组件 一般放到component目录 切换路由 切换路由时,组件和执行挂载和卸载 路由的工作模式 Hash模式 缺点 1.不美观,路径带#号 优点 1.兼容性好 一般适用于管理系统 History模式 缺点…...

MySQL如何给其他账号分配权限?

目录 基础权限分配流程 权限级别对照表 安全事项 MySQL数据库使用root账号为test账号分配权限的标准操作流程及注意事项: 基础权限分配 ‌1、root用户登录, 输入root密码后进入MySQL命令行环境‌ mysql -u root -p2、用户存在性校验 SELECT user,host FROM …...

记录一些面试遇到的问题

重载和重写的区别 重载是overload,覆盖是override 重载属于编译时多态,覆盖属于运行时多态 运行时多态和编译时多态 运行时多态指的是在运行的时候才知道要调用哪一个函数,编译时多态是指在编译的时候就知道调用哪一个函数。 运行时多态…...

Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术

文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战:运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…...

量子计算测试挑战:软件测试将如何迎接新纪元?

引言 在计算机技术的飞速发展中,量子计算(Quantum Computing)正成为下一个颠覆性的科技热点。随着谷歌、IBM、微软等科技巨头纷纷投入巨资研究量子计算,其应用场景正逐步扩展,从优化计算到密码安全,再到人工智能和材料科学。然而…...

Matlab实现车牌识别

车牌识别技术作为现代智能交通系统、安防监控以及诸多车辆管理应用场景中的关键环节,正发挥着日益重要的作用,它能够自动、快速且精准地从车辆图像或视频流中提取车牌信息,实现车辆身份的智能化识别。 技术原理 车牌识别主要依托于图像处理、…...

Autosar 诊断开发-CAN到CANFD的更改-基于ETAS软件

文章目录 前言CanIf配置CanTp配置EcuC配置生成代码差异总结 前言 从CAN切换到CANFD,如果不想重新进行cfggen的话,手动更改配置或许会更快一些,本文介绍诊断报文从CAN变为CANFD后,BSW模块中的更改。 注:本文不介绍MCAL…...

八、排序算法

一些简单的排序算法 8.1 冒泡排序 void Bubble_sort(int a[] , int len){int i,j,flag,tmp;for(i=0 ; i < len-1 ; i++){flag = 1;for(j=0 ; j < len-1-i ; j++){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 0;}}if(flag == 1){break;}}…...

TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”

近日&#xff0c;由万向区块链实验室与HashKey Group联合推出的Web3年度盛典——2025香港Web3嘉年华正式宣布&#xff0c;TON基金会确认成为本届嘉年华的冠名赞助商&#xff0c;并将于4月8日在主会场特别举办“TON生态日”专题Side Event&#xff0c;集中展现TON生态的最新技术…...

《A++ 敏捷开发》- 18 软件需求

需求并不是关于需求 (Requirements are not really about requirements) 大家去公共图书馆寄存物品&#xff0c;以前都是扫二维码开箱&#xff0c;有些图书馆升级了使用指纹识别。 “是否新方法比以前好&#xff1f;”我问年轻的开发人员。 “当然用指纹识别好。新技术&#x…...

RAG技术深度解析:从基础Agent到复杂推理Deep Search的架构实践

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...

智谱AI-FunctionCall

智谱AI-FunctionCall 编写FuncationCall大模型的函数调用&#xff0c;先直观的感受一下的感受下FunctionCall的魅力 文章目录 智谱AI-FunctionCall[toc]1-参考网址2-思路整理3-代码拆件1-[非核心]两个业务函数2-[非核心]业务函数的JsonSchema定义3-[核心]FunctionCall的调用1-打…...

[HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署

标题&#xff1a;[HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署 水墨不写bug 文章目录 一、无法拷贝类(class uncopyable)的设计解释&#xff1a;重要思想&#xff1a;使用示例 二、锁的RAII设计解释重要考虑使用示例 三、基于RAII模式和互斥锁…...

【玩转MySQL数据字典】MySQL数据字典与常用操作指令

MySQL数据字典简介与常用操作指令 一、数据字典简介 数据字典是MySQL 5.7中用于存储数据库对象元数据的系统表。在MySQL的早期版本中&#xff0c;元数据存储在.frm文件及其他文件里。这种存储方式存在诸多弊端&#xff0c;例如元数据不一致问题&#xff0c;不同文件间元数据的…...

C语言 —— 愿此世如黄金般辉煌 - 进制转换与操作符详解

目录 1. 操作符的分类 2. ⼆进制和进制转换 2.1 2进制转10进制 2.2 10进制转2进制 2.3 2进制转8进制 2.4 2进制转16进制 3. 原码、反码、补码 4. 移位操作符 4.1 左移操作符 4.2 右移操作符 5. 位操作符&#xff1a;&、|、^、~ 5.1 & 按位与 5.2 | 按位或 …...

基于粒子群算法的配电网重构

一、配电网重构原理 定义&#xff1a; 配电网重构是指在满足运行约束的前提下&#xff0c;通过改变开关状态优化配电网性能&#xff0c;提高系统的经济效益和运行效率。 拓扑约束&#xff1a; 配电网必须保持径向拓扑&#xff0c;避免环网或孤岛。采用算法控制开关状态的选择&…...

【云岚到家】-实战问题(上)

【云岚到家】-实战问题&#xff08;上&#xff09; 基础架构项目涉及那些角色云岚的业务流程&#xff1f;云岚家政包括那些模块项目采用什么架构如何开发一个接口&#xff1f;RESTful风格的去定义一个接口如何开发一个接口的service方法接口的异常处理怎么实现的&#xff1f;Sp…...

005-获取内存占用率

获取内存占用率 windows平台 在Windows环境下使用C获取内存占用率&#xff0c;可以通过以下两种方式实现&#xff0c;分别针对系统整体和特定进程的内存监控&#xff1a; 一、获取系统整体内存占用率 核心函数&#xff1a;GlobalMemoryStatusEx 步骤&#xff1a; 定义MEMOR…...

python从入门到精通(二十二):python文件操作之Excel全攻略(基于pandas)

Python处理表格数据 1.表格的基础知识1.1 xls与xlsx格式详解1.2 表格内部结构的认识 2.表格的基础操作2.1 认识表格的基本库2.1.1 csv内置的标准库2.1.2 xlrd 和 xlwt2.1.3 openpyxl2.1.4 pandas 2.2 安装和环境配置2.3 xlrd 和 xlwt2.3.1 库的说明2.3.2 安装xlrd库2.3.3 导入模…...

html常用标签

文章说明 本文旨在总结 HTML 中常见的标签&#xff0c;并提供简洁的解释&#xff0c;方便大家快速查找和复习。我们假设读者已经具备一定的 HTML 基础知识。本文将持续更新和完善&#xff0c;欢迎大家参与续写和补充 一、 HTML 标签 整个网页从 <html> 开始到 </html…...

ROS分布式部署通信

目录 一、概念 二、设置 ROS 分布式网络 1. 环境要求 2. 主机&#xff08;Master&#xff09;设置 3. 从机&#xff08;节点设备&#xff09;设置 4. 测试是否正常通信 三、进阶启动多从机节点&#xff08;launch&#xff09;。 一、概念 ROS 分布式通信用于在多台计算机…...

.Net 6 上传文件接口 文件大小报错整体配置

/// <summary>/// 上传文件/// </summary>/// <param name"file"></param>/// <returns></returns>[HttpPost("UploadifyFile")][RequestSizeLimit(2000 * 1024 * 1024)] // 设置最大请求体大小为 100MBpublic async …...

12.【线性代数】——图和网络

十二 图和网络&#xff08;线性代数的应用&#xff09; 图 g r a p h { n o d e s , e d g e s } graph\{nodes, edges\} graph{nodes,edges}1.关联矩阵2. A A A矩阵的零空间&#xff0c;求解 A x 0 Ax0 Ax0 电势3. A T A^T AT矩阵的零空间&#xff0c;电流总结电流图结论 …...

游戏引擎学习第145天

仓库:https://gitee.com/mrxiao_com/2d_game_3 今天的计划 目前&#xff0c;我们正在完成遗留的工作。当时我们已经将声音混合器&#xff08;sound mixer&#xff09;集成到了 SIMD 中&#xff0c;但由于一个小插曲&#xff0c;没有及时完成循环内部的部分。这个小插曲主要是…...

Linux(Centos 7.6)命令详解:zip

1.命令作用 打包和压缩(存档)文件(package and compress (archive) files)&#xff1b;该程序用于打包一组文件进行分发&#xff1b;存档文件&#xff1b;通过临时压缩未使用的文件或目录来节省磁盘空间&#xff1b;且压缩文件可以在Linux、Windows 和 macOS中轻松提取。 2.命…...

23年以后版本pycharm找不到conda可执行文件解决办法

这个问题很痛苦&#xff0c;折磨了我半天。 就是链接远程服务器的时候 就一直以为这三个都要配置 就这个conda环境这里怎么都找不到服务器的虚拟环境的python可执行文件&#xff0c;非常痛苦。 后面查找了资料&#xff0c;找了好久&#xff0c;才发现&#xff0c;原来只需要配…...

AGI(Artificial General Intelligence,通用人工智能)技术介绍

文章目录 **AGI的关键特点**1. **泛化能力**&#xff1a;2. **自主性和适应性**&#xff1a;3. **自我意识与推理**&#xff1a; **与当前AI的区别****AGI的挑战**1. **技术难点**&#xff1a;2. **伦理与安全**&#xff1a;3. **资源与算力**&#xff1a; **AGI的实现路径**- …...

createrepo centos通过nginx搭建本地源

yum update 先安装一个nginx。 安装Nginx yum install gcc gcc-c pcre pcre-devel openssl openssl-devel libtool zlib zlib-devel -y cd /usr/local/src wget http://nginx.org/download/nginx-1.22.0.tar.gz tar -zxvf nginx-1.22.0.tar.gz cd nginx-1.22.0 ./configu…...

279.完全平方数

279.完全平方数 力扣题目链接(opens new window) 给定正整数 n&#xff0c;找到若干个完全平方数&#xff08;比如 1, 4, 9, 16, ...&#xff09;使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 给你一个整数 n &#xff0c;返回和为 n 的完全平方数的 最少数…...

Dify部署踩坑指南(Windows+Mac)

组件说明 Dify踩坑及解决方案 ⚠️ 除了修改镜像版本&#xff0c;nginx端口不要直接修改docker-compose.yaml &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1、更换镜像版本 这个文件是由.env自动生成的&#xff0c;在.env配置 …...

备赛蓝桥杯之第十五届职业院校组省赛第六题:简易JSX解析器

提示&#xff1a;本篇文章仅仅是作者自己目前在备赛蓝桥杯中&#xff0c;自己学习与刷题的学习笔记&#xff0c;写的不好&#xff0c;欢迎大家批评与建议 由于个别题目代码量与题目量偏大&#xff0c;请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…...