自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(190)
  • 收藏
  • 关注

原创 【Docker-12】镜像操作案例+镜像综合实战

这里失败了,原因是主机架构不一样,mac是linux/arm64/v8,而linux是linux/amd64/v4 ,,,,这里我先欠着,等我到了公司用公司linux机器做。如果有相同的对象,就直接挂个新tag在上面,实际不占用磁盘空间,所以这几个对象其实共享一个空间,类似于C++中的引用计数。镜像的删除:可以根据 id 和名字删除,对于使用的镜像需要先清理容器再删除镜像。如果本地没有,镜像是从仓库拉取,如果有会提示镜像已经存在,并且是最新的。列出特定的某个镜像,也就是说指定仓库名和标签。

2025-04-03 08:55:02 935

原创 【Docker-11】Docker Image(镜像)

docker 镜像技术的基础是联合文件系统(UnionFS),其文件系统是分层的。这样既可以充分利用共享层,又可以减少存储空间占用。docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式,可以很方便的将其用于个人用途或与其他 Docker 用户公开。

2025-04-03 08:54:24 1054

原创 【Docker-10】镜像仓库实战

A:一般大型公司有自己专门的镜像制作组织,他们会选取对应的系统版本作为基础镜像,例如华为某部门选取欧拉来制作基础镜像,腾讯选择自己的 TLinux 制作基础镜像,不会因为出现 CentOS 不维护了无法使用的情况,而且这些镜像一般都会经过严格的安全扫描,然后作为基础组件提供给各个部门。当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。Q:我入职了一个公司,开发一个镜像,我怎么选择用哪个作为基础镜像啊?

2025-04-03 08:53:03 588

原创 【Docker-9】Docker Registry

镜像仓库(Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。镜像仓库管理多个 Repository, Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签 (Tag)来区分。整体视图如下:镜像仓库(Registry):要从哪一个镜像仓库拉取镜像,通常通过 DNS 或 IP 地址来确定一个镜像仓库如 hub.docker.com;

2025-04-03 08:52:29 1039

原创 【Docker-8】Docker安装

10.执行 hello-world 可以看到 Hello from Docker,表面 docker 服务正常。2.确定 CPU,可以看到我们的是 X86_64,是支持的,如果是 arm 一般会显示aarch64。3.卸载旧版本,如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载。1.确定操作系统版本,本次我们使用的是 Ubuntu 22.04。我们服务器是没有的,如果有,卸载指令。7.验证docker是否安装成功。5.配置 docker 下载源。

2025-04-03 08:50:52 318

原创 【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态

早期 Docker 利用 LXC 做容器管理引擎,但是在创建容器时,不再使用模板去安装生成,而是通过镜像技术(把一个操作系统用户空间所需要使用到的组件事先编排好,并整体打包成一个文件,image 文件),镜像文件集中放在一个仓库中。我们办理完入住了一个豪华大床房,然后把行李,个人物品带到了一个具体的房间号,比如 9527,那么这个房间我们可以使用了,朋友也开了一间豪华大床房,虽然豪华大床房一样,当时我们携带的物品,我们的洗漱时间,睡觉时间都不一样,这个就是容器 Docker Container。

2025-04-03 08:49:58 968

原创 【Docker-6】LXC容器实战

自docker 0.9 版本起,docker 除了继续支持 LXC 外,还开始引入自家的 libcontainer,试图打造更通用的底层容器虚拟化库。CentOS 安装 LXC,如果已经安装,可以检查下是否需要卸载,如果需要卸载执行Centos 卸载 LXC。安装前执行检查看下是否需要卸载,如果需要卸载,执行下面的命令完成卸载,不需要直接到第 2 步。安装前执行检查看下是否需要卸载,如果需要卸载,执行下面的命令完成卸载,不需要直接到第 2 步。没有安装的话,执行下面的命令完成安装。

2025-04-03 08:49:09 415

原创 【Docker-5】资源控制实战

通过。

2025-04-03 08:48:32 906

原创 【Docker-4】空间隔离实战

ext3 是第三代扩展文件系统(The Third Extended Filesystem)的缩写,是 ext2 文件系统的升级版本,它在 ext2 的基础上加入了日志功能,以提高文件系统的可靠性和数据恢复能力。

2025-03-31 14:03:35 557

原创 【Docker-3】什么是虚拟化、容器化

物理机:实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理机提供给虚拟机以硬件环境,有时也称为“寄主”或“宿主”。虚拟化:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。容器化。

2025-03-31 14:02:50 234

原创 【Linux加餐-connect的短线重连】

客户端会面临服务器崩溃的情况,我们可以试着写一个客户端重连的代码,模拟并理解一些客户端行为,比如游戏客户端等。

2025-03-27 02:20:25 477

原创 【Linux加餐-验证UDP:TCP】-windows作为client访问Linux

成功调用该函数后,Winsock 库的状态会被初始化,应用程序就可以使用 Winsock 提供的一系列套接字服务,如地址家族识别、地址转换、名字查询和连接控制等。在调用 WSAStartup 函数后,如果应用程序完成了对请求的 Socket 库的使用,应调用 WSACleanup 函数来解除与 Socket 库的绑定并释放所占用的系统资源。accept ():接受客户端的连接请求,并返回一个新的套接字描述符,用于与客户端进行通信。listen ():将套接字设置为监听模式,等待客户端的连接请求。

2025-03-27 02:19:40 884

原创 【Linux加餐-网络命令】

是一个用于定期执行命令并全屏显示其输出的工具。它非常适合用来实时监控命令的输出变化,比如监控系统状态、网络连接、日志文件等。• a (all)显示所有选项,默认不显示 LISTEN 相关。是一种网络工具,用于测试主机之间的连通性。报文,从而判断网络是否通畅以及测量往返时间(RTT)。• n 拒绝显示别名,能显示数字的全部转化成数字。• t (tcp)仅显示 tcp 相关选项。• u (udp)仅显示 udp 相关选项。,表示延迟非常稳定,波动很小。:通过进程名, 查看进程 id。:往返时间的标准差,为。

2025-03-27 02:18:23 843

原创 【Linux网络-poll与epoll】epollserver设计(两个版本 Reactor)+epoll理论补充(LT ET)

总结一下,epoll的使用过程就是三部曲:调用epoll_create 创建一个epoll句柄调用epoll_ctl,将要监控的文件描述符进行注册调用epoll_wait,等待文件描述符就绪。

2025-03-27 02:16:53 1237

原创 【Linux网络-poll与epoll】poll作用和定位+poll接口+epoll介绍等

int fd;A. 参数说明fd: 要监视的文件描述符。若设置为负值则忽略 events 字段并且 revents 字段返回 0。events: 指定要监视的文件描述符上的事件。poll返回时告知用户该文件描述符上的哪些事件已经就绪B. events 和 revents 的取值事件描述是否可作为输入是否可作为输出POLLIN数据(包括普通数据和优先数据)可读是是POLLRDNORM普通数据可读是是POLLRDBAND优先级带数据可读(Linux不支持)是是POLLPRI。

2025-03-27 02:16:38 903

原创 【Linux网络-多路转接select】

select要正常工作,需要借助一个辅助数组,来保存所有合法fd每次使用都要重置就绪了,循环检测处理所有事件缺点每次调用 select,都需手动设置 fd 集合,从接口使用角度来说也非常不便。每次调用 select,都需要把 fd 集合从用户态拷贝到内核态,这个开销在 fd 很多时会很大。同时每次调用 select 都需要在内核遍历传递进来的所有 fd,这个开销在 fd 很多时也很大。select 可监控的文件描述符数量太少。

2025-03-26 00:00:00 770

原创 【Linux网络-五种IO模型与阻塞IO】

一旦数据准备好,内核会将数据拷贝到用户空间缓冲区中)当数据被成功拷贝到用户空间时,内核通知应用程序数据已经可用,应用程序可以继续执行其他任务,而不需要等待I/O操作的完成,当I/O操作完成后,内核通过信号或回调函数通知应用程序。【例子】在之前的echo例子中,键盘向OS输入,实际将键盘输入的数据放入到OS内部的输入缓冲区,当进程需要这个数据的时候,将输入缓冲区的内容拷贝到进程,进程执行结果后将数据拷贝到OS内部的输出缓冲区,显示器从输出缓冲区拷贝内容,最终就把结果回显给我们。

2025-03-24 00:00:00 692

原创 【Linux网络-NAT、代理服务、内网穿透】

后来找张三表姐买尿不湿的人太多了,他表姐觉得天天去超市太麻烦,干脆去超市买了一大批尿不湿屯在家里,如果有人来找她代购,就直接把屯在家里的货发出去,而不必再去超市,此时张三表姐就是 “反向代理”。,是一种让位于不同内网中的设备可以直接建立连接的技术,主要应用于需要点对点(P2P)通信的场景,如文件传输、视频通话、游戏联机等。内网打洞技术在 P2P 通信中起到了重要作用,通过与中继服务器配合,使内网中的设备能够直接建立连接,降低了对中继的依赖,提高了通信效率。,是一种NAT(网络地址转换)技术的扩展。

2025-03-22 00:00:00 992

原创 【Linux网络-数据链路层】以太网(以太网帧格式|MAC地址+模拟一次性局域网通信+MTU)+ARP协议

标准以太网帧格式分为多个字段,用于确保数据的完整性和有效传输。

2025-03-20 00:00:00 696

原创 【Linux网络-网络层】TCP与IP的关系+IP协议基本概念+网段划分+路由+IP分片与组装

链路状态算法通过收集、传播链路状态信息,使每台路由器构建出网络拓扑图,并基于最短路径算法生成路由表。这种算法能提供全局最优的路由选择,适合需要快速收敛和高可靠性的中大型网络。

2025-03-18 00:00:00 620

原创 【Docker-2】容器技术发展史+编排与容器的技术演进之路

Docker 在初期与 Warden 类似,使用的也是 LXC,之后才开始采用自己开发的 libcontainer 来替代 LXC,它是将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。与其他只做容器的项目不同的是,Docker 引入了一整套管理容器的生态系统,这包括高效、分层的容器镜像模型、全局和本地的容器注册库、清晰的 REST API、命令行等等。技术革命带来新的市场机遇,CoreOS 也是其中的一员,在容器生态圈中贴有标签:专为容器设计的操作系统 CoreOS。

2025-03-17 22:26:03 1019

原创 【Linux-传输层协议TCP】流量控制+滑动窗口+拥塞控制+延迟应答+捎带应答+面向字节流+粘包问题+TCP异常情况+TCP小结

粘包:多个小消息被合并为一个数据包发送,导致接收方在读取时发现接收的数据包含了多条消息。拆包:一个大消息被拆分成多个数据包发送,导致接收方收到的数据是一个不完整的消息,需要将多次接收到的数据拼接起来。

2025-03-16 00:00:00 1781

原创 【Linux-传输层协议TCP】TCP协议段格式+确认应答+超时重传+连接管理机制(三次握手、四次挥手、理解TIME_WAIT + CLOSE_WAIT)

TCP全称为“传输控制协议(Transmission Control Protocol)”人如其名,要对数据的传输进行一个详细的控制。下面是TCP报头各个字段的表格形式:下面是TCP报头中控制位字段的表格形式:这些控制位标志用于TCP连接的建立、维护和终止,以及数据的可靠传输。每个标志都有其特定的作用,通过组合使用这些标志,TCP能够实现复杂的网络通信功能。这里有4个比特位,按照正常取值范围就说【0,15】,但是我们的报头至少需要20字节。所以规定TCP报头中4位首部长度的基本单位是4字节,这样取值范围就是

2025-03-14 00:00:00 1743

原创 【Linux-传输层协议UDP】再谈端口号+UDP协议+深度理解UDP

在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组来标识一个通信(可以通过 netstat-n 查看);UDP封装的过程,首先我们知道协议栈有四层:应用层,传输层,网络层,数据链路层;操作系统内可能同时存在大量的报文,有的报文正在被向上交付,有的报文正在被向下交付;比如 HTTP,FTP,SSH 等这些广为使用的应用层协议,它们的端口号 都是固定的。如果我们需要传输的数据超过64K,就需要在应用层手动的分包,多次发送,并在接收端手动拼装;

2025-03-12 00:00:00 765

原创 【MySQL-表的约束】空属性+默认值+列描述+zerofill+主键+自增长+唯一键+外键+综合案例

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如一个字段是email,要求是唯一的表的约束很多,这里主要介绍如下几个:表的约束:表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束本质是通过技术手段,倒逼程序员,插入正确的数据。反过来,站在mysql视角,凡是插入进来的数据,都是符合预期的约束的最终目标:保证数据的完整性和可预期性,因此我们需要更多的约束条件案例:创建一个班级表,包含班级名和班级所

2025-03-10 00:00:00 1447

原创 【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型

当你插入一个非常大的数值,或者一个包含非常多小数位的数值时,超出这个精度的部分就会被舍入或者直接丢失,为了避免精度丢失,我们使用decimal类型。而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…【案例】:有一个调查表votes,需要调查人的喜好,比如(登山,游泳,篮球,武术)中去选择(可以多选),(男,女)[单选]如果我们向mysql特定的类型中插入不合法的数据,MySQL一般都是直接拦截我们,不让我们做对应的操作。最多可以设置64个选项。

2025-03-08 00:00:00 763

原创 【Linux-HTTP协议】HTTP知识延续+HTTP设计改进

但是以前访问的人并不知道域名更改了,于是还是访问以前网站,为了不丢失老客户,技术部门将原网站进行重定向,这样访问的是abc网站,实际已经跳转到xyz网站了;我们自己的是login,百度这里是s,问号后面是一堆参数1,GET方法把参数提交给百度,把后面参数全部交给/s服务,所以/s相当于在服务器注册一个服务列表,并且有对应执行算法(搜索算法),所以它的参数回掉执行对应函数以后,对应算法服务就可以通过回掉把请求的执行后的参数就全部交给我了,交给我之后不就可以看到我们搜索后的内容了吗?

2025-03-06 00:00:00 1216

原创 【一个月备战蓝桥算法】递归与递推

将整数序列看作由数字组成的字符串,从序列的第一个元素开始逐个比较元素的大小,如果对应位置的元素不同,则元素值小的序列排在前面;比较 "apple" 和 "banana",因为第一个字符 'a' 的 ASCII 码值小于 'b',所以 "apple" 在字典序中排在 "banana" 前面。比较 "apple" 和 "app",前三个字符都相同,但 "app" 先结束,所以 "app" 在字典序中排在 "apple" 前面。:要求输出给定序列的所有全排列,并且按照字典序输出。,其全排列按照字典序输出为。

2025-03-04 23:11:58 2071

原创 【MySQL-表的操作】表的增删改查

在项目实际开发中,经常修改某个表的结构,比如字段名称,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。◉ charset (也可以写成 character set)字符集,如果没有指定字符集,则以所在数据库的字符集为准。◉ collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。可以看出,添加字段后,新字段会被default填充,并且不影响原来表的数据。注意:删除字段一定要小心,删除字段及对应的列数据都没了。

2025-03-04 10:30:32 352

原创 【Linux网络-HTTP协议】HTTP基础概念+构建HTTP

虽然我们说,应用层协议是我们程序猿自己定的.但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP(超文本传输协议)就是其中之一。在互联网世界中,HTTP(HyperTextTransferProtocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如 HTML 文档)。HTTP 协议是客户端与服务器之间通信的基础。客户端通过 HTTP 协议向服务器发送请求,服务器收到请求后处理并返回响应。

2025-03-02 09:00:00 1191

原创 【Linux网络-应用层自定义协议与序列化】基础概念+序列化与反序列化+JsonCpp+网络版本计算器代码

socket api的接口,在读写数据时,都是按“字符串”的方式来发送接收的,如果我们要传输一些“结构化的数据”怎么办呢?无论我们采用方案一,还是方案二,还是其他的方案,只要保证,一端发送时构造的数据,在另一端能够正确的进行解析,就是ok的,这种约定,就是。例如,我们需要实现一个服务器版的加法器,我们需要客户端把要计算的两个加数发过去,然后由服务器进行计算,最后再把结果返回给客户端。◉ 在任何一台主机上,TCP连接即有发送缓冲区,又有接受缓冲区,所以,在内核中,可以在发消息的同时,也可以收消息,即全双工。

2025-02-28 09:00:00 1725

原创 【Linux网络-Socket编程TCP实战】多线程远程命令执行

其次我们想让执行业务解耦更加彻底,那么原先这个文件的Service就不再需要了,我们直接使用包装器,未来执行回掉函数,底下的关闭文件描述符也不要了,我们就要解耦彻底。首先内部会创建一个管道,然后再创建子进程,创建子进程后调用exec*接口执行command,子进程执行完命令后将结果写入管道,然后父进程去读管道就可以了。:指向一个字符串,它可以是 “r” 或 “w”,分别表示读取从子进程的标准输出或向子进程的标准输入写入。启动的进程是异步的,但它的标准I/O流与调用进程是同步的。命令,并读取了它的输出。

2025-02-26 09:00:00 300

原创 【Linux网络-Socket编程TCP实战】Tcp_echo_server设计

【故事】现在有一家餐馆,餐馆内有若干服务员,餐馆外还有一个专门拉客的工作人员,工作人员负责将外面的顾客拉入餐馆,让服务员进行服务,工作人员将顾客带进餐馆后不在餐馆停留,而是返回门口继续拉拢客户,这里的工作人员就是sockfd,而里面的服务员就是返回的文件描述符,也就是说,sockfd 的作用就是把链接从底层获取上来,而返回值的作用就是跟客户端通信。对于父进程来说,父进程一般是需要等待子进程退出,回收子进程,如果子进程一直不退出,父进程一直等待,这样不就又卡在原来的地方了吗?

2025-02-24 09:00:00 756

原创 【Linux网络-Socket编程UDP实战】dict_server + chat_server

之前的echo_server只是用来发消息,现在我们想在服务器加点业务,实现一个翻译的功能,客户端输入英文,会自动回显他的中文含义。之前我们的服务都是单进程的,以后我们的业务肯定不止一个,这里我们引入线程池,将线程池作为我们的网络转发模块,实现聊天室功能。我们需要一个容器能够存储我们的单词以及翻译,我们是通过文件加载的,因此我们需要文件路径。我们需要调整一下客户端,客户端也是需要线程维护的,一个线程发消息,一个线程收消息。对于回掉函数,我们要传人文件描述符,信息,以及客户端信息(谁发的)

2025-02-22 09:00:00 304

原创 【Docker-1】技术架构演进之路

在进行技术学习过程中,由于大部分读者没有经历过一些中大型系统的实际经验,导致无法从全局理解一些概念,所以本文以一个 "电子商务" 应用为例,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,方便大家对后续知识做深入学习时有一定的整体视野。

2025-02-21 18:12:41 1439

原创 【Linux网络-Socket编程UDP实战】udp_echo_sercer

在实现这个实战前,先复习几个函数。

2025-02-20 09:00:00 996

原创 【Linux网络-Socket编程预备】认识IP和端口号 + UDP/TCP编程接口

PID是操作系统分配给每个进程的唯一标识符,用于在系统内部标识和追踪进程。

2025-02-18 09:00:00 1030

原创 eventfd介绍

eventfd是一个 Linux 系统调用,用于创建一个事件通知文件描述符。它通常用于进程间通信(IPC),允许一个进程通知另一个进程某个事件已发生。

2025-02-17 23:04:24 301

原创 【Linux网络-网络基础】TCP/IP五层(或四层)模型+网络传输的基本流程

TCP/IP协议的本质是一种解决方案TCP/IP协议能分层,前提是因为问题们本身能分层截止到目前,我们还没接触过任何协议,但是如何朴素的理解协议,我们已经可以试试了OS源代买一般都是用C/C++语言写的下面,仔细看看下面的图问题:主机B能识别data,并且准确提取a=10,b=20,c=30吗?回答:答案是肯定的!因为双方都有同样的结构体类型 struct protocol,也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有“共识”,能够识别对方发来的数据,这不就是约定吗?

2025-02-16 09:00:00 1993 1

原创 【Linux网络-网络基础】计算机网络背景+协议+OSI七层模型

网络是一种由多个节点(如计算机、手机或其他电子设备)通过通信线路或无线信号连接而成的系统。在网络中,信息可以通过这些节点进行传输和交换。

2025-02-14 14:54:28 1235

期末题库-计算机组成原理

期末题库-计算机组成原理

2024-12-13

操作系统-期末模拟卷答案夸克可以搜到.pdf

操作系统-期末模拟卷答案夸克可以搜到.pdf

2024-12-09

操作系统第二章-处理机调度、管程与死锁、进程同步

操作系统第二章-处理机调度、管程与死锁、进程同步

2024-12-09

Hadoop期末复习资料

Hadoop期末复习资料

2024-12-07

C++中的类型转换.pdf

C++中的类型转换.pdf

2024-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除