自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis架构实践

文章摘要: 本文介绍了Redis 7.4.8的编译安装及主从复制配置过程。首先通过源码编译安装Redis,解决依赖问题后完成服务部署。随后配置主从复制,修改主节点(redis-node1)的redis.conf关闭保护模式并绑定所有IP,从节点(redis-node2/3)配置replicaof指向主节点地址。通过info replication验证主从状态,确保从节点成功连接主节点。最后重启服务并检查端口监听情况,确认主从复制架构生效。全文涵盖关键配置参数和状态检测命令,为搭建Redis主从环境提供实操指

2026-03-29 19:18:22 387

原创 Redis集群技术

Redis是一种高性能键值型内存数据库,主要解决传统关系型数据库在海量数据和高并发场景下的性能瓶颈问题。其核心特性包括高速读写(10W QPS)、单线程架构、丰富的数据结构(18种)以及持久化支持。典型应用场景涵盖Session共享、缓存、计数器、社交功能等。 Redis与MySQL的缓存读写流程采用"先读缓存,未命中查库"策略,写操作推荐"先更新数据库再删除缓存"的方案(Cache-Aside模式),以避免并发问题。基本操作包括数据增删改查、数据库管理及Key操作等

2026-03-28 14:22:05 370

原创 MySQL集群技术

MySQL集群通过多节点协同解决单机数据库的性能瓶颈、可用性风险和数据可靠性问题,实现高可用、高扩展和数据一致性。企业通常采用源码编译方式安装MySQL,需注意依赖管理和编译参数配置。 主从复制是MySQL高可用的基础,基于Binlog实现异步数据同步,包含主库的Binlog Dump线程和从库的I/O、SQL线程协同工作。传统异步复制存在数据丢失和延迟风险,通过GTID模式优化主从切换和事务追踪,确保数据一致性。GTID为每个事务生成唯一ID,简化故障转移并防止重复执行。 关键优化技术包括: GTID模式

2026-03-28 11:13:24 369

原创 MHA故障排查解决记录

MHA故障切换实验问题与解决方案总结 实验记录了MySQL高可用架构MHA在故障切换过程中遇到的8个典型问题及解决方法。主要问题包括:网关检测导致的切换失败、GTID冲突、mysqlbinlog命令缺失、relay-log.info文件缺失、从库配置错误、权限不足、Manager无响应以及切换中断问题。针对MySQL 8.3.0与MHA 0.58的版本兼容性问题,提供了参数设置建议和手动解决方案。最后给出了标准的MHA配置文件模板,并说明了MHA的生命周期管理方法。实验表明,正确配置二次检测脚本、GTID处

2026-03-26 11:39:38 326

原创 MySQL-Router+MySQL-MGR

本文介绍了MySQL组复制(MGR)的配置过程。环境采用三节点架构(10、20、30)和MySQL Router(40)。首先配置各节点的/etc/hosts和my.cnf文件,设置server-id并启用GTID复制功能。随后在配置文件中添加组复制相关参数,包括插件加载、组名、本地地址和种子节点等。配置步骤包括:1)修改root密码并创建复制专用账户;2)授予必要权限;3)设置组复制恢复通道;4)验证插件状态。最后通过全局变量开启组复制功能。整个配置过程确保了多主模式下MySQL节点的高可用性和数据同步。

2026-03-26 00:16:06 269

原创 Ansible还原数据库节点

本文介绍了使用Ansible自动化工具还原MySQL节点的详细步骤。首先配置Epel源并安装Ansible,创建devops用户并设置密码。随后配置Ansible环境,包括设置清单文件和权限管理。关键步骤是通过Ansible实现自动化管理通道:批量创建用户、设置密码、配置sudo免密权限、创建SSH目录以及分发公钥实现免密登录。整个过程实现了从手动操作到自动化管理的转变,为后续MySQL服务的自动化恢复奠定了基础。文章通过具体命令展示了Ansible在集群环境初始化中的高效应用,为运维人员提供了可复用的自动

2026-03-26 00:13:29 397

原创 MySQL集群高可用-MHA

文章摘要 本文详细介绍了MySQL高可用架构MHA(Master High Availability)的部署过程。主要内容包括: 搭建一主多从的半同步复制架构,并关闭延迟复制功能。 部署MHA环境: 在管理节点安装Perl环境及相关依赖 修复MHA 0.58版本的Perl sprintf bug 在所有MySQL节点安装MHA组件和依赖包 创建MySQL监控用户mha,用于MHA管理。 配置MySQL服务器参数,初始化数据库环境。 文章提供了详细的命令行操作步骤,包括软件包安装、配置文件修改、用户权限设置等

2026-03-26 00:02:09 746

原创 MySQL集群主从复制

本文详细记录了MySQL 8.3.0源码编译部署及主从复制配置过程。主要内容包括:1)从官网下载源码包并安装相关依赖;2)通过cmake配置编译参数,完成约22分钟的编译安装;3)创建mysql用户、数据目录,初始化数据库并设置systemd服务;4)配置主从复制环境,修改主节点my.cnf文件启用二进制日志,设置server-id为10。测试显示主节点成功开启二进制日志功能,验证了编译部署的正确性,为后续主从复制搭建奠定了基础。

2026-03-25 23:58:41 66

原创 Linux修改最大文件描述符数文件

本文总结了压测前必须优化的文件描述符限制配置,涉及系统层、服务进程层和应用配置层三个维度。系统层需修改/etc/security/limits.conf和systemd的DefaultLimitNOFILE参数;服务进程层针对Nginx、PHP-FPM、MySQL等服务的systemd单元文件设置LimitNOFILE;应用配置层调整各服务自身的连接数参数(如Nginx的worker_connections、MySQL的max_connections等)。特别强调PHP-FPM配置需优化进程管理方式、子进程

2026-03-23 16:19:52 40

原创 Discuz! X5 高性能+高可用

本文介绍了基于阿里云ECS服务器的高可用Web项目部署方案。采用5台服务器构建集群架构,包含前端网关、应用节点和数据层。技术栈涵盖Nginx+Keepalived高可用、MySQL集群(MHA/MGR)、Redis缓存、Memcached页面缓存等。重点展示了多级缓存流程设计,通过Nginx+Memcached一级缓存拦截99%请求,PHP+Redis二级缓存处理动态数据。项目采用裸金属服务器部署,不使用阿里云托管负载均衡服务,适合学习实践。整体成本控制在107元(含1台包年ECS+4台按量服务器+域名),

2026-03-19 00:07:49 515 2

原创 Tomcat实践

本文介绍了Tomcat的安装部署、与Nginx的整合以及通过Memcached实现会话零丢失的配置方法。首先详细说明了Tomcat 9.0.115的下载安装、Java环境配置和系统服务化过程。其次展示了Nginx作为反向代理的两种配置方式:单体架构直接代理和基于会话保持的负载均衡架构。最后重点阐述了通过Memcached实现Tomcat会话持久化的方案,包括Memcached服务安装配置、Tomcat所需JAR包的部署以及context.xml文件的修改。整套方案实现了高可用Web服务架构,解决了传统Tom

2026-03-03 17:44:51 186

原创 Nginx其它扩展

FastCGI是一种改进的CGI协议,用于高效处理Web服务器与后端应用程序(如PHP、Python)的通信。相比传统CGI每次请求启动新进程,FastCGI通过常驻进程提升性能。PHP-FPM是PHP的FastCGI进程管理器,管理PHP进程池并优化资源分配;uWSGI则是支持多语言的全功能服务器,适用于Python等场景。在LNMP架构中,Nginx通过FastCGI协议与PHP-FPM协作处理PHP请求,形成高效的Web服务解决方案。

2026-03-03 15:28:17 698

原创 Nginx反向代理功能

Nginx代理功能与参数详解 Nginx作为高性能代理服务器,支持多种协议转发和丰富的配置参数。文章详细介绍了Nginx的代理功能模块,包括http反向代理(ngx_http_proxy_module)、TCP代理(ngx_stream_proxy_module)以及FastCGI/Python等异构代理模块。重点讲解了proxy_pass、header控制、超时设置等核心参数的使用方法,并通过示例说明七层和四层代理实现IP透传的不同方案:七层通过proxy_set_header修改HTTP头部,四层则需使

2026-03-02 23:55:50 819

原创 Nginx-Rewrite相关功能

本文摘要: 文章详细介绍了Nginx的ngx_http_rewrite_module模块相关指令及实践应用。主要内容包括:1)if指令的条件匹配语法和变量比较运算符;2)set、break、return等核心指令的功能说明;3)rewrite指令的URL重写机制,包括正则表达式语法和四种flag(redirect/permanent/break/last)的区别;4)防盗链原理基于Referer请求头;5)通过配置实例演示了变量设置、条件判断和浏览器User-Agent检测等实际应用场景。文章包含大量配置示

2026-03-02 14:24:32 787

原创 Nginx基础实践

本文详细介绍了Nginx源码编译安装及版本管理的过程。首先通过wget下载Nginx源码包并安装依赖库,使用configure命令配置编译选项(包括SSL、HTTP2等模块),执行make安装并配置环境变量。随后创建nginx用户,启动服务并测试访问。第二部分展示了如何编写systemd服务文件实现开机自启。最后介绍了版本升级方法,通过修改nginx.h文件隐藏版本信息后重新编译。整个过程包含详细的命令操作和配置说明,适用于生产环境部署。

2026-03-02 00:16:45 273

原创 Web应用服务器Tomcat

本文摘要了Web技术核心概念、架构模式及服务器部署方案。主要内容包括:1)B/S与C/S架构对比,HTTP协议及动态网页技术演进;2)单体架构与微服务架构的特点及适用场景;3)Tomcat作为Servlet容器的核心功能与组件;4)LNMT/LAMT架构对比及反向代理负载均衡的部署演进。重点分析了各种技术方案的优缺点,为Web应用开发部署提供了技术选型参考。

2026-02-25 04:51:26 701

原创 Nginx高性能Web服务器

四大核心功能功能用途场景Web服务器托管静态网站图片、CSS、JS、HTML反向代理隐藏真实服务器,统一入口负载均衡到多台后端负载均衡请求分发到多台机器高并发网站、微服务缓存加速热点数据存内存减少后端压力模块 = 功能插件,按需加载,相当于游戏加model、系统填补丁。模块类型核心功能具体功能举例是否必须核心模块服务器运行基础错误日志、配置解析、事件驱动、进程管理必须标准HTTP模块HTTP协议基础功能端口配置、编码设置、响应头、静态文件默认开启可选HTTP模块。

2026-02-25 04:03:12 664

原创 Web服务基础理论

本文摘要: Web服务架构:完整请求流程涉及DNS解析、TCP连接、HTTP处理等多个环节,核心性能瓶颈包括网络IO、磁盘IO和计算资源。 IO模型: 详解五种网络IO模型,重点分析阻塞/非阻塞IO、信号驱动、异步IO和IO多路复用 特别对比select/poll/epoll三种多路复用实现,指出epoll采用红黑树+就绪链表的高效机制 IO多路复用是解决C10K问题的关键技术 零拷贝技术: 传统文件传输存在4次拷贝和4次上下文切换 演进路径:MMAP减少1次CPU拷贝→Sendfile减少2次切换→DMA

2026-02-24 21:11:53 701

原创 Keepalived

高可用集群(High Availability Cluster, HA Cluster)是一组通过软件或硬件方式连接在一起的计算机(节点),它们协同工作,确保即使部分节点发生故障,整个系统仍然能够持续提供服务,从而最大限度地减少停机时间。核心目标消除单点故障(Single Point of Failure, SPOF)实现服务的7×24小时不间断运行类型核心目标典型场景代表技术负载均衡(LB)流量分发、横向扩展Web入口、API网关高可用(HA)消除单点故障、服务连续性数据库、核心服务。

2026-02-24 00:43:45 860

原创 Keepalived实现集群高可用

global_defs { enable_script_security # 启用脚本执行权限 script_user root root # 指定专用用户,因为所有部署都是用root用户去部署的 }19 script_user root root # 指定专用用户,因为所有部署都是用root用户去部署的。19 script_user root root # 指定专用用户,因为所有部署都是用root用户去部署的。

2026-02-24 00:36:29 819

原创 Keepalived基础实现

keepalived的日志会被保存在/var/log/messages文件中,这个文件中除了含有keepalived的日志外,还有其他服务的日志信息,这样不利于对于keepalived的日志进行查看。KA1出现故障时VIP会被迁移到KA2,KA2上开始显示播报内容,当KA1恢复时,VIP因为优先级被KA1抢占,KA2中播报停止。# 使用本地global_defs {}中的脚本时注释掉这些钩子,使用这些钩子时注释掉global_defs {}中的邮件设置。# KA1是WEB_VIP主、DB_VIP备;

2026-02-22 06:39:03 654

原创 HAProxy

Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术。可以通过将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性方便了业务后期的水平动态扩展。由威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件,是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。

2026-02-21 00:18:56 717

原创 HAProxy的高级功能

10

2026-02-21 00:12:20 539

原创 HAProxy算法实践

对用户请求的url中的 params 部分中的一个参数key对应的value值作hash计算,并由服务器总权重相除,之后派发至某挑出的服务器。# 针对用户每个http头部(header)请求中的指定信息做hash(此处由 name 指定的http首部将会被取出并做hash计算)。# 基于对用户请求的URI的左半部分或整个uri做hash,再将hash结果对总权重进行取模后根据最终结果将请求转发到后端指定服务器。# 此方法默认是静态的,即不支持在线调整权重,不支持慢启动,可实现对后端服务器均衡调度。

2026-02-18 04:46:23 619

原创 HAProxy基本参数实践

这个实验要测试nbproc参数,HAProxy版本确保在2.5以下。

2026-02-18 04:42:11 573

原创 抓包理解LVS中的DR模式

数据包到Router,找到192.168.0.200的网关192.168.0.100,进行LVS中的DR模式,所以在wireshark中看到的是192.168.0.100。Client访问192.168.0.200,没直连,找网关172.25.254.100。数据包到VSNode,找到DIP,通过DIP找到RIP。数据包到RS,通过路由表中的网关回到Router中。通过Router回到Client。

2026-02-15 03:35:19 164

原创 LVS(linuxvirtualserver)

Scale UP:向上扩展,增强Scale Out:向外扩展,增加设备,调度分配问题,Cluster程序包:ipvsadm主程序:/usr/sbin/ipvsadm规则保存工具:/usr/sbin/ipvsadm-save规则重载工具:/usr/sbin/ipvsadm-restore配置文件:/etc/sysconfig/ipvsadm-configipvs调度规则文件:/etc/sysconfig/ipvsadm。

2026-02-15 03:29:35 608 1

原创 web、selinux、firewalld小实验

防火墙和selinux都开着,比较符合服务器实际情况。

2025-11-28 11:33:41 178

原创 DomainNameSystem

🔭DNS基本信息什么是DNS:Domain Name System(域名系统)产生原因 : 因为ip太多了,记不住,所以搞一个域名跟ip进行绑定,方便记忆,随着时代发着ip慢慢拥有了商标属性,具有庞大的商业价值连接方式:知名端口号53,通常DNS是以UDP这个较快速的数据传输协议来查询的,但是UDP没有查询到完整的信息时,就会再次以TCP这个协议来重新查询,所以启动DNS时,会同时启动TCP以及UDP的port53。

2025-11-08 19:14:17 1092

原创 SecureShellProtocol(ssh)

🔭ssh基本信息ssh全称安全外壳协议(SecureShellProtocol)ssh是一个协议,而openssh是对ssh的一个具体的实现,它是真实用于远程连接的软件ssh端口号:22。

2025-11-03 22:30:00 833

原创 Linux服务器启动和修复

内核启动结束后开始读取“系统初始化镜像文件”(initramfs-5.14.0-427.13.1.el9_4.x86_64.img),用file命令查看是gzip文件,改后缀名为gz后用gunzip可以解开,里面的文件是初始化二进制程序,再用cpid -id 解开后会发现它和根下面的目录很相似。在文件系统引导阶段,系统会读取自动引导文件(/boot/grub2/grub.cfg),在此文件中指定系统启动过程中会读取什么文件,加载什么文件。mbr是在安装系统时安装来的,那么我们再从光盘中安装就好了。

2025-11-03 01:43:08 925

原创 Network File System

🔭NFS基本信息什么是NFS:Network File System (网络文件系统)。NFS的使用场景:存储分离的使用场景,有效的提升数据安全共享。NFS涉及到的服务:rpcbind.service (rcp服务):相当于服务中介,帮助nfs服务器和客户端只晓彼此。nfs-server.service(nfs服务):文件服务器开启所有需要的程序。NFS是一种基于TCP/IP 传输的网络文件系统协议。

2025-11-02 00:08:32 657

原创 Linux-Redhat系统启动读取文件流程

首先把根(/)读写挂载,进入/etc/systemd/system/multi-user.target.wants/中读取链接文件,它们都是链接到做开机自启动服务的服务脚本。这两个标题看的是/boot/grub2/grub.cfg这个文件,这个文件中指定了下一步读取哪一个文件、timeout等于几秒等等配置。之后读取/etc/systemd/system/multi-user.target.wants/下的软链接文件。读取完这些链接后,最后会读取开机自运行脚本(/etc/rc.d/rc.local)。

2025-10-29 23:24:17 880

原创 虚拟机系统化部署母盘(Linux)

禁用默认命名规则,实现可预测命名规则(作用是启动时网卡名称会变成eth0,再添加一个网卡时添加的网卡名称会是eth1,有规律的添加网卡名;不使用这个命令它后面添加的网卡名不好推测,写脚本也不怎么顺畅.如:ens160再添加一个网卡后会变成。1.使用mount命令挂载本地光盘映像(临时挂载、开机自启动挂载、开机执行一下mount命令),不建议弄开机自启动挂载,即写再/etc/fstab里面写mount,写错了开机还会起不来。下所有仓库配置文件删了,母盘能省空间就尽量省空间,克隆出去的节点不会有赘余文件)

2025-10-26 01:41:04 853

原创 计网协议簇具体协议

步骤:1.A向邻居B发送dbd报文,通告本地链路状态信息库表lsdb中所有的癞lsa摘要信息2.B收到报文后,与本地的lsdb做对比,向A发送lsr报文,请求A发送自己需要的lsa的完整信息3.A收到lsr报文后,把B需要的lsa的完整信息打包成一条lsu报文,发送给B4.B收到lsu报文后,向它的对方A回复lsAck报文,进行确认注:选举dr(指定路由)与bdr(备份指定路由):

2025-09-20 16:27:09 1129

原创 计网基础知识

第一阶段:1946年第一台计算机在美国产生,用于军事方面计算导弹轨迹。计算机运作原理应用层:将人类语言转化成编码(ACSII码、Unicode)表示层:编码转换成二进制(0、1语言)介质访问控制层:将二进制转换成电信号物理层:传输电信号第二阶段:1969年计算机网络诞生阶段第三阶段:计算机网络协议标准产生与确立(相当于用于维护网络界的“顺序”。第四阶段:Internet国际互联集线器内部为总线型结构,是一种共享型介质(共享的是通信线路)任意时间只有两个主机能通信,占用通信线路。

2025-09-20 16:12:10 526

原创 mysql第四次作业

2.定义触发器实现在产品表(product)中每更新一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。3.定义触发器实现在产品表(product)中每删除一个产品就,在操作表(operate)中记录操作方式和时间以及编号记录。1.定义触发器实现在产品表(product)中每多一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。创建product_after_delete_trigger。创建product_after_insert_trigger。

2025-07-20 19:58:20 340

原创 MySQL第三次作业

为什么会恢复丢数据,看一下这三张图就知道了(使用mysqldump备份会中文乱码)使用mysqldump备份的数据(注意我是使用了--default-character-set=utf8参数的)转字符集后使用图形化工具备份。

2025-07-16 13:53:37 977

原创 mysql第一、二次作业

(6)创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。(10)列出所有部门号为102和103且不是党员的职工号、姓名。(11)将职工表t_worker中的职工按出生的先后顺序排序。(2)查询所有职工所属部门的部门号,不显示重复的部门号。(8)列出工资在4000-8000之间的所有职工姓名。(12)显示工资最高的前3名职工的职工号和姓名。(15) 列出总人数大于等于3的部门号和总人数。(9)列出所有孙姓和李姓的职工姓名。(5)列出职工的平均工资和总工资。(1) 显示所有职工的基本信息。

2025-07-14 01:55:35 256

原创 MySQL的三种安装方式(mis、zip、yum)

若这一步报错则Alt+Ctrl+Delete打开任务管理器-----服务-----MySQL80---右击打开服务---找到MySQL80右击------属性----登录----允许本地系统账户。查看红帽版本、删除多余的仓库配置(确保只有redhat.repo)、确认系统没有安装mariadb-server服务避免和mysql有冲突---->去官网下载yum版本的。数据库连接指令:mysql -u用户名 -p密码 -P 端口号 -h 主机名(本地主机可以用域名)(-u与-p不能有空格)为什么又叫做绿色版?

2025-07-11 12:58:51 1471

空空如也

空空如也

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

TA关注的人

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