- 博客(68)
- 收藏
- 关注
原创 Docker网络
桥接模式:部署好docker服务,启动之后,创建一个虚拟网桥(docker0),docker0是一个虚拟的网络设备,类似于交换机。容器和容器之间共用一个network namesapce,不是和宿主机共享,新创建的容器也不会有自己的网卡,配置自己的ip,而是和一个容器共享ip端口,除了网络之外,其他的比如文件系统等等都是隔离。创建容器之后,容器有自己的网络命名空间,但是不会进行任何网络的配置,没有网卡,没有ip,没有端口,只有本地的lo的回环网络,没有办法进行联网,网络是封闭的,一般用于内部调试。
2024-08-19 16:18:21
274
原创 Docker基本管理和应用
总结:容器是在linux上运行,与其他容器共享主机内核以及主机的资源,独立运行,相互隔离的进程(应用程序),轻量级的,容器运行时占用一定的资源,但是不占用其他任务的资源。拉取镜像--------创建容器-------修改镜像------重启容器------停止容器------删除容器------删除镜像。集装箱---------->独立运行的容器,相互隔离的容器,一个容器就是一个独立运行的应用程序。1.2 IPC 信号量,消息队列,共享内存,进程拥有独立的通信资源,不受其他的进程影响。
2024-08-13 16:59:44
677
原创 zabbix 监控软件
代理:代理服务器的作用:如果所有的客户端都想服务端一起发数据,服务端的压力会比较大,发送到代理服务器,代理服务器处理完之后再发给server,减轻主服务器的压力。1.5 zabbix-sender:发送器,可以将客户端的数据进行自定义操作后再发送到服务端,也可以通过脚本,把脚本处理过的数据发送到客户端。zabbix可以提供各种类型的监控模版,保证服务器的正常运行,灵活的通知机制可以让管理员快速定位。ZBX:zabbix的缩写,默认模式,监控网络和设备,服务。(在服务端,模版、应用集、监控项、触发器、图形)
2024-08-13 16:42:11
269
原创 Ceph存储池
使用方式为磁盘映射,RAID和LVM提供磁盘空间,再把多个主机上的RAID和LVM组成一个逻辑上的RAID和LVM,多块磁盘组成这种逻辑空间,可以并行的执行读写操作,IO效率比较高。1.3 高扩展性:扩容方便,可靠性比较强,定义1副本,创建数据的时候可以对数据进行副本操作,副本数由管理员定义,副本可以跨主机保存,跨架构,跨机房,跨数据中心进行保存。1.3 MDS:也是一个守护进程,保存ceph文件系统的元数据(文件的权限,所有者,所在组,修改时间等待,在ceph集群当中的inode号)
2024-08-13 16:32:51
747
原创 Rsync远程同步
inotify wait 监控修改、创建、移动、删除、属性修改(权限修改、所有者、所在组)如果发生变动。在远程同步的任务中,负责发起rsync叫做发起端,也就是服务端,负责响应的同步请求,就是客户端。开源的快速备份的工具,一般是系统自带的。可以在不同主机之间同步整个目录树(目录)2.3 可以支持保留源文件或者目录的权限等。-z 压缩,在传输的过程中对文件进行压缩。2.1 支持拷贝文件,链接文件等。上行 客户端同步到服务端。下行 服务端同步到客户端。2.2 可以同步整个目录。-v 显示同步的详细过程。
2024-08-13 16:15:21
135
原创 Zookeeperr集群+kafka集群
2、发布订阅模式(一对多,又叫观察者模式,消费者数据在消费玩之后不会被清除——保留一段时间)即生产者发布一个消息,可以是一个消费者使用,也可以是多个消费者同时使用(主流)kafka就是发布订阅模式的消息队列,主要用于大数据实时处理领域。(电商的订单系统,网站的工单系统,典型的一个消息队列场景)leader:分区的领导者,用来处理分区的读写操作,只有在指定写分区和指定读分区时才工作,全量展示,无意义。消费者订阅主题,一是获取全量的消费者信息(默认模式),也可以从指定的分区获取消息(代码完成,一般不用)
2024-08-07 16:42:36
853
原创 ELK日志系统
F:filebeat 轻量级的开源日志文件数据搜集器,logstash 占用系统资源比较大,属于重量级,有了filebeat可以节省资源,可以通过filebeat好logstash实现远程数据收集,但是filebeat不能对数据进行标准输出,不能输出为es格式的数据,所以需要logstash把filebeat数据做标准化处理。总结:logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。
2024-08-07 16:39:58
1146
原创 redis哨兵模式和集群
集群由多个节点组成,redis数据保存在这些节点、集群中的节点分为主和从,主负责读写以及维护集群的信息,从节点进行主节点数据的复制(也可以查)。集群总结:moved不是报错,只是系统提示客户端到指定位置的哈希槽进行读或者写,系统提示啥,你就去哪个节点操作即可,这个节点是该节点的主。从不能更新到主,也是哨兵模式的基础。切换方式:不是按照权重来进行切换,投票:主宕机,其他服务器投票选举,通过Raft算法,选一个例当前时间点更新最快的从变成主。故障切换时,主故障,变成从服务器,主变成从之后,也会进入只读模式。
2024-07-31 15:46:54
865
原创 Redis高可用
mem_fragmentation_ratio:15.25内存的碎片比例,已经分配的内存,但是没有使用的内存,这个值越低越好,越低,内存利用率更高。AOF持久化的实时性更好,只要是操作了,都会记录在日志文件中,进程出现意外时,丢失的数据更少,AOF是主流的持久化方式。是把操作的数据库指令以日志的形式,保存在指定的文件当中,文件的后缀名.aof,类似于mysql的binlog。redis的持久化:内存当中的数据,保存到硬盘,开启持久化之后,会有一个持久化的文件,通过文件进行恢复。
2024-07-31 15:42:14
1105
原创 Redis 安装和数据类型
zset集合:有序集合,sorted set,元素类型都是string,元素唯一,不能重复,每个元素都会关联一个double类型的分数score(表示权重),通过权重的大小进行排序,权重可以相同。或者根据客户的ip区分不同客户购买的同一产品。缓存通常位于数据的访问路径上,数据的必经之路,可以不直接访问原始数据的情况下,可以直接获取数据。set集合:无序集合,元素的类型只能是string,在无序集合当中,元素具有唯一性,不允许重复。test1=10 数据的类型不是定义好的类型,根据自定义,系统自动识别。
2024-07-30 16:30:06
591
原创 Mysql存储过程
为了完成特定功能sql语句的集合,把定义好的的sql集合在一个特定的sql函数当中,每次执行调用函数即可,还可以实现传参的调用。delimiter是开始和结束语法,$$是标志位,可以自定义,不要用汉字或者数字开头,不能使用特殊字符开头。inout 输入输出 既可以表示存储过程向调用者传出,也可以表示用户向存储过程传入值。客户端可以随时调用发放,也可以随时修改,可以对数据库做任何操作,out 输出参数,存储过程向调用者传出值,可以是多个值。in 传入参数,调用者向存储过程传入值。3.5 存储过程的控制语句。
2024-07-30 16:21:30
220
原创 Mysql的MHA
1.6 主备切换之后,mysql模式下,一般是继续以现有主作为集群的主,重新把服务器加入到集群。MHA NODE:数据节点,每台的mysql的管理服都要安装,监控服务器状态以及收集数据。主和备不是优先确定的,主从复制的时候确定了主,备是在MHA的过程中确定。MHA的 manager 管理节点 管理mysql的高可用集群。1.2 备从主的二进制日志当中更新到自己的slave日志当中。1.5 原来的备成为主,其他的备的服务器都和主继续同步数据。vip地址,根据vip地址所在的主机,确定主备。
2024-07-30 16:18:09
335
原创 Mysql的主从复制和读写分离
2.2 中间层代理 在客户端和主从架构之间有一个代理服务器,代理服务器收到客户端的请求之后,通过客户端的sql语句来进行判断,读转发到从,写转发到主。介乎于异步和全同步之间,主库更新完事务之后,也是同步到从库,同步完成之后有一个等待时间,等待时间是一个tcp/ip的往返时间(5毫秒左右)控制innodb缓冲池的大小,增大可以提高数据库性能,但是占用的是系统的内存,配置的时候要注意合理化时间。实现是基于mysql的二进制日志,根据主库的二进制文件的标志位,实现主和从的同步。
2024-07-30 16:16:07
886
原创 Mysql高阶语句
where条件的筛选功能(比较符号)1.3.2 where和having。1.7 子查询当中多表查询和别名。去重查询 : distinct。1.2 where条件的筛选。1.8.4 视图和表的区别。1.2.2 嵌套多个条件。1.5.1 表和列的别名。1.8 mysql的视图。1.1.1 升序和降序。1.2.1 区间判断。1.3.1 聚合函数。1.5 表和列的别名。1.6.1 模糊查询。1.6.2 关联语法。1.8.1 查看视图。1.8.2 创建视图。1.8.3 删除视图。
2024-07-30 16:12:13
190
原创 Mysql存储引擎
CSV:逗号分割数据的存储引擎,数据文件以.csv文件保存的,为了和execl表格兼容,保存的文件就是一个普通的文本文件,也不支持索引。mysql自带的备份命令:也可以备份库,也可以备份库里面的表(命令:mysqldump)(热备份)逻辑备份:根据数据库文件当中保存的sql语句、表结构等等,以特定的格式和命令对文件的内容进行还原。存储引擎,是一种数据库存储数据的机制、索引的技巧、以及锁定水平,即存储的方式和存储的格式。1.1 备份的目的:备灾。物理备份(全量备份):把数据库的内容整个一次性的备份(冷备份)
2024-07-30 16:07:26
334
原创 mysql事务
不同的事务同时操作相同的数据时,每个事务都有自己完整的数据空间——对数据的修改所发生的并发事务是隔离的。一个事务对一个表的数据进行了修改,另一个事务也修改了表中的数据,前一个事务的修改被后一个事务的修改覆盖了,导致前一个事务发现自己的修改消失了,像出现了幻觉。在一个事务内,多次读同一数据,一个事务没有结束,另外一个事务也访问该数据(对数据进行了修改),前一个事务读取的结果不一致。持久性 :一旦事务提交,它对数据库的改变是永久性的,即使系统崩溃,数据库也能够通过日志文件进行恢复,保证数据的持久性。
2024-07-19 17:02:55
914
原创 mysql索引
remark text :text也是数据类型的一种,和char,varchar性质相同,都是字符串,text不需要长度的参数,可以作为大文本的列,可以存储65535个字符。叶子节点:包含的条目直接指向表里的数据行。更新一个包含索引的表,比没有索引的表需要花费更多的时间。查看索引会发现,索引类型不是b-tree,是fulltext,对全文索引查询的方式有一些区别。主键是唯一的,外键是关联主表的,查询时可以快速定位。索引是一个排序的列表,在列表当中存储索引的值以及索引值对应数据所在的物理行。
2024-07-19 16:58:36
465
原创 数据库的约束条件与用户管理
root@localhost 安装完mysql之后就有了,不需要额外设置,其他的需要人工创建,其他的用户也不设置成localhost,都是设置主机名。information_schema :包含了mydql服务器中所有其他数据库,表,列,索引权限等详细的元数据的信息,查询数据库的结构和元信息。查询语句和执行时间和锁定等信息。外键就是和主表进行关联的列,不需要设置为从表的主键,但是不能为空,必须和主表的数据类型保持一致。外键的值和主键的值要相同,先插入主表的数据,在插入从表的数据。
2024-07-19 16:53:43
848
原创 Mysql基础与安装
varchar 在保存字符串是时,多少就是保存多少,在保存的字符串结尾默认有一个隐藏的结束符,会多占一个字节。char定义好了长度之后,不论写的值多少,都会占用固定长度的字节大小,保存在磁盘上都是接点字节。insert into 表名(字段1,字段2,字段3)values (值1,值2,值3);命名规范:库名,表名,列的名字,必须都是字母开头,后面可以数字。char的读写性能高于varchar,char是连续的磁盘空间,保存的内容是连续的。关系型的优点:表的结构清晰,逻辑容易整理,记录的证据比较完整。
2024-07-17 15:23:30
639
原创 Haproxy负载均衡
1、场景 主要用户高并发的web场景,可以支出1万个以上的并发请求,高性能的tcp和http的负载均衡器。可以同时维护4万-5万并发,单位时间内可以处理的最大请求数是2万个(单位时间:1秒或者1分钟)3、haproxy本身不自带缓存功能,可以在请求当中添加cookie,使用缓存功能。haproxy就像LVS的调度器,高可用即实现两台haproxy服务器一主一备。让haproxy命令可以被系统识别到。Haproxy 四层转发,七层转发。1、Haproxy的作用和使用场景。1、进行四层和七层转发。
2024-07-16 15:27:26
184
原创 LVS+Keepalive高可用
在主上查询keepalive是否配置成功,当主服务器的nginx服务被关闭,相对于的keepalive也会关闭,虚拟vip切换到备用服务器,依旧可以工作,切换后主服务的nginx服务开启,keepalive开启,vip地址切换到主服务器。在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作,主调度器恢复功能之后,主继续作为集群的入口,备继续处于冗余状态(取决于优先级)3、故障切换,主挂了,备来继续工作,主恢复了,备继续等待。
2024-07-16 15:25:13
416
原创 lvs集群
DS:director server,是lvs当中的主服务器,也是调度器(nginx的代理服务器),是集群的核心,调度器就是用来接收客户端的请求转发到后端的服务器。nat模式是常用lvs的模式之一,在nat模式下,lvs会将来自客户端的请求报文的目的ip地址和端口,修改为lvs内部的ip地址和端口,然后把请求转发到后端服务器。dy------当天事必须当天解决-----没有解决之前,人是不可以离开的-----解决完成之后必须生成报告,备案-----日报、周报、月报、年报。
2024-07-15 09:48:23
1003
原创 Tomcat优化和动静分离
XX:PermSize=1024m:设置非堆内存的初始值,持久代内存的大小,默认是物理内存的1/4,建议设置成真个jvm内存的一半(在非堆内存:是不会被java的垃圾回收机制处理的)堆区产生:每生成一个新的对象,对下占用的内存空间就是新生代空间,垃圾回收对堆区当中的资源进行回收之后,新生代没有被回收 的资源就转移到了中生代,中生代就会转移到老年代。-Xmx2048m:java堆的最大值,也就是jvm的最大内存,主要取决于物理内存的大小,官方建议设置成与xms一样的值,设置成物理内存的一半。
2024-07-15 09:46:00
584
原创 Tomcat部署以及优化
处理http请求,生成动态内容,以及响应客户端的请求。处理http请求,生成动态内容,处理java的业务逻辑,会话管理,保持用户的状态信息,购物车同步,用户登录等等。-XX:PermSize=1024m:设置非堆内存的初始值,持久带内存的大小,默认是物理内存的1/4,建议设置成整个jvm内存的一半,在非堆内存是不会被java的垃圾回收机制处理的。jsp:web应用程序的界面,这个界面的语言是用java来实现的.jsp为结尾的文件,index.jsp3、自身也是一个http的服务器。
2024-07-10 11:39:03
732
原创 LNMP搭建Discuz和Wordpress
-enable-fpm: 启用PHP-FPM(FastCGI Process Manager),用于提供更高效的PHP进程管理和请求处理。--with-freetype-dir: 指定FreeType库的路径,用于GD库对字体的支持。--with-jpeg-dir: 指定JPEG库的路径,用于GD库对JPEG格式图片的处理。--with-png-dir: 指定PNG库的路径,用于GD库对PNG格式图片的处理。--with-curl: 启用cURL库,用于支持对URL的操作,如下载文件等。
2024-07-10 11:30:18
1016
原创 nginx的重定向(rewrite)
从功能看 rewrite 和 location都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 location 是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器。rewrite工作方式,通过nginx的全局变量或者是自定义变量,结合正则表达式和标志位实现url的重定向,对访问的域名或者域名内的URL路径地址重写。在虚拟机自带的浏览器对域名www.xy102.com进行访问,域名跳转到www.zlm.com只域名跳转,内容不变。
2024-07-10 10:57:25
1198
原创 nginx的优化和防盗链
net.ipv4.tcp_keepalive_time=1200 #当keepalive启用时,TCP发送keepalive探测消息的频率,确认客户端是否断网。net.ipv4.tcp_max_syn_backlog=8192 #SYN队列长度,默认为1024,加大队列长度为8192,可容纳更多等待连接的网络连接数。net.ipv4.tcp_max_tw_buckets=5000 #表示系统同时保持TIME WAIT的最大数量。
2024-07-10 10:49:26
629
原创 nginx服务器
稳定性高,而且版本迭代比较快(修复bug的速度比较快,安全快) 消耗系统资源很低,http的请求,并发连接,单台服务器可以支持3万-5万的并发请求。http模块 http转发和处理http请求,处理静态页面,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置。1、静态文件服务:静态页面,可以直接提供静态文件服务,html css jsp 处理静态页面的响应速度很快,效率也很好。5、对/usr/local/nginx目录下的四个目录的解释。/usr/local/nginx目录下的四个目录的解释。
2024-07-09 17:23:02
326
原创 web基础和http协议
HTTP 1.1 只要建立了连接,除非数据发送完毕,否则不需要为了其他的资源专门再建立额外的连接,大大节省了带宽的使用。web:通俗地说就是我们所说的网页,打开网站展示的页面。缓存有的保存在本地,有的保存在web服务器,现在的缓存基本上保存在用户的本机(一般由浏览器保存)。网站建设的基础,早期的网站都是静态页面,没有后台数据库,没有其他的程序,也没有可以交互的页面。
2024-07-02 16:07:44
424
原创 Linux防火墙
要求:在test2上配置防火墙,使test1作为私网地址,test3作为公网地址,观察双方获取对方web服务时,/var/log/nginx/access.log中记录的访问主机地址,理解NAT的工作方式。在网络层对数据包进行选择,选择的依据是防火墙设置的策略。OUTPUT链 :处理本机发出的数据包的规则,或者是数据包离开本机的规则(Filter表,是否允许数据包发出,一般不做设置)Filter表 :也是iptables的默认表,不做声明时,默认就是filter表,过滤数据包的进出,以及接收和拒绝数据包。
2024-06-28 19:00:00
928
原创 免交互的简单实现
例:一个脚本完成要求:免交互实现磁盘分区,分一个区即可,分完之后,第一步格式化,第二步实现挂载,手动挂载即可,然后在分区挂载点创建一个文件,写入内容"学习使我快乐!expect免交互文件的解释器不是/bin/bash,不能用sh bash来执行,要赋权后,用.来执行,即需要先chmod 777 file,然后再执行。交互:在计算机中,交互一般指发出指令控制程序的运行,程序在接收到指令之后按照指令的效果做出对应的反应。用tcl语言写的一个工具,主要用到自动化控制和测试,解决shell脚本交互的问题。
2024-06-26 15:22:47
437
原创 awk命令学习
1 是一个条件,表示打印处理后的结果。例3:监控内存,cpu和硬盘的根目录,超过80%提示用户,写成函数库的行,每天早上 的8:50分,执行一次脚本。RS :行分隔符,可以根据RS的设置把文件内容分割成多个记录,也可以改变行的分隔符,默认是\n,回车,换行。第一个: :相当于else,后面的内容就是判断为假的时候输出的内容,这里是输出$4。print列的时候不能范围取列,要想打印多个列,必须列出所有要打印的列,用,隔开。print列的时候不能范围取列,要想打印多个列,必须列出所有要打印的列,用,隔开。
2024-06-26 15:17:34
987
原创 sed命令
用分组的方式对字符串进行互换,分组的默认序号按从左到右为1 2 3 ,在//指定匹配内容时对内容分组,在后面用\分组序号的形式指定分组的位置。-n :仅显示script处理后的结果(不加-n,sed会显示两个输出结果,加了-n,会把默认输出屏蔽)注:单字符替换不是字符串替换,上一句的含义是把文件中所有的o换成1,n换成2,e换成3。y :替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致,等量替换。处理文本时按行处理,处理完当前行,才会处理下一行,直到文件末尾。
2024-06-24 17:36:01
461
原创 文本编辑命令和正则表达式
一、 编辑文本的命令正则表达式匹配的是文本内容,Linux的文本三剑客,都是针对文本内容。文本三剑客grep:过滤文本内容sed:针对文本内容进行增删改查 (本文不相关)awk:按行取列 (本文不相关)文本三剑客都是按行进行匹配。1.1 grep命令grep的作用就是使用正则表达式来匹配文本内容。选项:-m:匹配几次之后停止,一行有多个匹配的内容也仅视为一次匹配-v:取反,所有不包含匹配内容的行-n:显示匹配内容所在的行号-c:仅统计匹配的行数-o:仅显示匹配的内容。
2024-06-24 17:27:33
762
原创 shell数组
思路:从小到大排列,对比两个相邻的元素,满足交换条件的元素,小的往左移,大的往右移,数组的位置发生变化(下标对应的元素的值发生变化。特别的:自动追加只会在数组的最后一位的下标之后往后追加,而不会自动填入到前面空缺的下标中。解释:获取df -h结果的第5列(即已用%所在列)的内容,并去除%,方便比较大小。test2[ ]的[ ]中是对应元素的下标,即元素在数组中的位置,下标从0开始。类似气泡上涌,会将数组中的元素按照从大到小,或者从小到大的顺序进行排序。数组的长度指的是数组内包含的元素的个数。
2024-06-20 21:00:00
300
原创 shell函数
例2:递归目录,把/opt/目录下,所有的文件递归出来,如果只是空目录就打印目录名,否则继续打印直到目录里没有文件。local a :此时定义的a为函数内部变量,此处 $a 为空,打印inside2 $a为空。之后,就是函数内部的变量,而不再是全局变量,外部的赋值会替换内部的变量值。a=8:此处把8赋值给内部变量a,打印inside3 $a,此处$a=8。函数结束,到外部打印 outside $a,此时a为全局变量,$a=10。在递归中,上一次递归的变量temp的值为下一次递归的$1变量。
2024-06-19 20:30:00
372
原创 for循坏练习
一、循环和遍历1.1 循环循环是一种重复执行一段代码的结构,只要满足循环的条件,会一直执行这个代码。循环条件:在一定范围之内,按照指定的次数来执行循环。循环体:在循环中执行的命令序列,只要条件满足,循环体会被一直执行。1.2 遍历遍历指的就是对数据结构中每个元素进行一次访问的过程。通常和循环一起使用。访问的目的就是为了执行特定的操作。粗略地理解:循环就是操作,遍历就是输出。1.3 循环的作用重复执行代码,尤其是统一的,相同的,批量的操作。提高代码的重复利用率。
2024-06-13 22:00:00
414
原创 if/case条件测试语句
一、条件测试1.1 返回码 $?:返回码,用来判断命令或者脚本是否执行成功(最近的一条)。0 :true,为真就是成功,成立。非0 :false,失败或者异常。1.2 test命令可以进行条件测试,然后根据返回值来判断条件是否成立。-e :exist,测试目录或者目录是否存在-d :directory,测试目录是否存在-f :file,测试普通文件是否存在-r :read,测试当前用户是否对文件/目录有读权限-w :write,测试写权限。
2024-06-13 19:30:00
1215
原创 shell脚本和变量
一、shell脚本脚本就是可运行的代码的集合,脚本语言(计算机语言)的特点:从上到下,按行执行。Python:脚本语言,格式更严谨,严格地执行缩进。也是从上到下按行执行。shell脚本运行在shell环境(bin/bash),bash就是shell的解释器。shell脚本就是在Linux环境下的编程语句。1.1 shell的解释器sh :bash的早期版本,基本被淘汰了。bash :sh的扩展版。默认的解释器就是bash。csh :类C语言。tcsh :整合了C语言的shell。
2024-06-12 16:43:48
859
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人