- 博客(271)
- 资源 (1)
- 收藏
- 关注
原创 2025-我的优快云年度创作历程与成长盘点
时光荏苒,又是一年岁末收官。回望这一年在优快云的创作之旅,既是一段与技术对话、与同好共鸣的时光,更是一段自我沉淀、持续突破的成长之路。从最初的小心翼翼记录,到如今的从容分享,每一篇博客、每一次互动,都成为我技术生涯中不可或缺的印记。恰逢博客之星评选,我愿以文字为媒,复盘年度创作历程,细数成长与突破,也致敬每一份热爱与坚持。
2026-01-02 22:08:54
888
原创 Prometheus实战教程 - Redis 监控
Redis 监控核心是通过采集指标,结合 Consul 实现服务自动发现,Prometheus 存储指标,Grafana 可视化;必监控指标包括可用性(redis_up)、内存使用率、缓存命中率、主从同步状态,需针对这些指标配置告警;不同部署模式(单机/集群/哨兵)需关注差异化指标,集群需重点监控,哨兵需关注监控的主节点数。
2025-12-23 17:47:34
797
原创 Elasticsearch 分片满了?「cluster.max_shards_per_node」报错
该告警核心原因是 ES 集群分片数达到上限或服务器文件描述符耗尽;临时解决:调高配置;长期优化:清理无用索引、合并小索引、合理规划分片数,同时检查服务器文件描述符限制。不要盲目调高分片上限,分片过多会导致集群性能下降(比如频繁的分片重分配、内存占用过高),优化分片规划才是根本。
2025-12-19 16:20:09
703
原创 Redis 生产环境命令管控规范
必禁用命令:KEYS、HKEYS、HGETALL、SMEMBERS、FLUSHDB、FLUSHALL,需通过彻底禁用;推荐替代命令:SCAN/HSCAN/SSCAN 迭代遍历命令,是生产环境唯一允许的遍历方式;精细化管控:Redis 6.0+ 优先使用 ACL 按用户管控命令权限,区分运维/业务用户。
2025-12-17 21:44:37
848
原创 Redis 连接池被占满(泄漏)问题排查
先用查看是否接近连接池max-active,确认连接池是否耗尽;用ss统计应用服务器连接数,区分是“并发过高”(idle小)还是“连接泄漏”(idle接近age);查看的cmd字段,定位慢查询或耗时长的操作;针对性调整:并发高则调大连接池参数,连接泄漏则修复代码释放逻辑,网络/服务问题则排查Redis服务和网络。
2025-12-17 17:10:46
876
原创 Prometheus实战教程 - mysql监控
核心逻辑:MySQL 实例注册到 Consul(服务注册)→ Prometheus 配置 Consul 服务发现(自动发现 MySQL 实例)→ MySQL 暴露监控指标(via mysqld_exporter)→ Prometheus 拉取指标 → 可视化/告警。(手动注册/自动注册),这里提供两种方式(推荐手动注册用于测试,生产可结合 Consul Agent 自动注册)。访问 Consul UI(默认 http://Consul-IP:8500/ui),在「Services」中查看。
2025-12-13 13:39:19
914
原创 MySQL 压测实战:sysbench 从入门到精通
sysbench 是一款开源的、跨平台的多线程性能测试工具,支持对 CPU、内存、磁盘 I/O、数据库(主要是 MySQL)等进行压测,尤其在数据库压测中应用广泛,能模拟真实的读写负载,评估数据库的性能极限。sysbench 压测 MySQL 的核心流程是「准备数据 → 执行压测 → 清理数据」,核心参数需关注table-size(单表行数)、tables(表数量)、threads(并发数);
2025-12-13 13:18:24
1074
原创 Docker 隔离的底层秘密:cgroup 到底在干啥?
cgroup 是 Linux 内核的核心资源管理机制,通过“任务-控制组-子系统-层级”的架构,实现了对进程组的多维度资源控制。v2 版本简化了配置、解决了 v1 的设计缺陷,已成为主流场景的首选。无论是容器、虚拟化还是系统资源管理,cgroup 都是实现“资源可控”的关键技术,理解其原理和实操方法,能帮助更好地排查资源相关问题(如容器 OOM、CPU 占用过高)。
2025-12-05 17:23:14
1289
原创 MySQL max_connections连接数配置没生效,最终靠改这个参数解决
由于无法登录数据库开展排查工作,优先采取临时应急方案:重启MySQL数据库服务器。重启操作会强制释放所有已占用的数据库连接,恢复终端登录权限,为后续的根因排查创造必要条件。(文件描述符)限制过低,导致数据库的核心连接数配置无法生效,最终引发连接数耗尽、服务启动失败的故障。:虽然在MySQL配置文件中已设置了较高的最大连接数,但由于系统服务的。配置值,解除文件描述符对MySQL连接数的限制,让。登录MySQL终端后执行以下命令,确认。
2025-12-05 12:52:29
910
原创 一文分清 DDL 和 DML!别再把 “改结构” 和 “改数据” 搞混了
聚焦于「数据库对象的结构」,相当于“搭建数据库/表的骨架”,操作后会直接修改数据库的元数据(描述数据的数据)。核心特点操作不可逆(多数数据库中,DDL 执行后自动提交,无法用 ROLLBACK 回滚,比如 DROP TABLE 删表后数据和结构都消失);执行时会锁定整个对象(比如 ALTER TABLE 时,表会被锁定,其他操作无法访问);影响数据库的“结构”,而非“内容”。常见命令及示例命令作用示例CREATE创建数据库对象ALTER修改数据库对象结构(新增age列)DROP。
2025-12-04 17:25:19
967
原创 HTTP协议:常见状态码(400/500 系列)
这份文档专门整理了 HTTP 协议里的 400 和 500 两类常见报错码,把每个报错码的具体意思、实际工作中会碰到的场景都讲清楚了,不管是开发、运维还是前端对接接口的人,都能靠它快速找到问题根源。400 系列状态码表示客户端的请求存在语法错误、权限问题或资源不存在等问题,导致服务器无法正常处理请求,错误根源通常在客户端侧。500 系列状态码表示服务器在处理合法请求的过程中发生异常,错误根源通常在服务器侧,与客户端请求的合法性无关。
2025-12-04 17:17:33
912
原创 案例分享:mysql代理引起的Unable to acquire JDBC Connection问题。
达到了Load Balancer 的空闲连接限制(4 minutes), 触发了 Load Balancer 的连接回收, 但是被Load Balancer 中断的连接, 应用程序未能正常进行回收, 导致程序拿到了已经失活的连接, 从而出现该问题。说白了就是:如果你的 TCP 或 HTTP 连接搁那儿 “摸鱼”—— 超过 4 分钟没任何数据传输,那客户端和服务器之间的连接就可能被断开(官方说 “不保证维持”,实际场景里基本都会断)。等这连接一断,你的客户端程序就会报个错,大概意思是:“底层连接被关了啊!
2025-12-01 18:20:01
983
原创 Docker Compose 部署一个完整的Prometheus监控告警系统
你可以使用 docker-compose ps 查看所有服务的运行状态。Master Token 是最高权限令牌,用于管理其他 Token 和 ACL 规则。使用 Master Token 列出所有 Token(需替换为实际 Token)我们来使用 Docker Compose 部署一个完整的监控告警系统。X-Consul-Token 用上一步自己创建的Token。关于钉钉告警的webhook的步骤,可以参考这篇文章。首先,我们创建一个整洁的目录结构来存放所有配置文件。
2025-11-24 15:19:06
709
原创 Prometheus实战教程 - 初识PromQL
可以这么说,PromQL是Prometheus所有应用场景的基础,理解和掌握PromQL是Prometheus入门的第一课。这种方式的问题很明显,以系统API调用的平均响应时间为例:如果大多数API请求都维持在100ms的响应时间范围内,而个别请求的响应时间需要5s,那么就会导致某些WEB页面的响应时间落到中位数的情况,而这种现象被称为长尾问题。与Summary类型的指标相似之处在于Histogram类型的样本同样会反应当前指标的记录的总数(以_count作为后缀)以及其值的总量(以_sum作为后缀)。
2025-11-11 17:04:38
1040
原创 Prometheus实战教程 - 服务发现
而对于Prometheus而言其解决方案就是引入一个中间的代理人(服务注册中心),这个代理人掌握着当前所有监控目标的访问信息,Prometheus只需要向这个代理人询问有哪些监控目标控即可, 这种模式被称为服务发现。它允许 Prometheus 定期从一个 HTTP 端点(如自定义的服务注册接口、配置服务器等)拉取目标列表,适用于需要自定义服务发现逻辑的场景(例如企业内部自建的服务注册中心,或无法直接对接 Consul、K8s 等现有组件的情况)。*),包含服务的详细信息,可用于筛选或标签重写。
2025-11-10 17:10:39
930
原创 Prometheus实战教程 - Golang 开发Prometheus 自定义 Exporter
Exporter 的核心功能是数据采集、格式转换、指标暴露,这三个功能构成其核心工作流。数据采集从目标对象(如服务器、数据库、应用程序)获取原始监控数据。支持多种采集方式,比如主动拉取(Polling)或被动接收(Push)。格式转换将采集到的异构原始数据,统一转换为标准化的指标格式。最常见的标准是 Prometheus 的指标格式,确保数据可被监控系统识别。指标暴露通过 HTTP 接口(通常是 /metrics 端点)将标准化指标对外暴露。
2025-11-07 17:48:32
915
原创 Prometheus实战教程 05 - 告警通知实现 - 邮件 + 钉钉 + 自定义告警模板
prometheus-webhook-dingtalk 是官方推荐的工具,可将 Alertmanager 告警格式转为钉钉支持的格式。上 一节内容,已经部署好了Alertmanager服务,同时也接受到了页面上的告警,本节将介绍通过多种方式将告警发送出来。若仍报错,查看 Alertmanager 日志(如journalctl -u alertmanager)在 Alertmanager 中配置钉钉通知,需要通过 webhook 方式对接钉钉机器人。处理好告警后,也接受到了告警恢复通知。
2025-11-06 16:03:23
1117
2
原创 Prometheus实战教程 04 - 主机告警
但是运维过程中,还需要根据告警规则触发告警,并通过多种方式发送提醒(邮件,短信,钉钉,飞书,微信等)。在生产环境中,Prometheus 告警规则文件的规划需要兼顾可读性、可维护性、扩展性,避免所有规则堆砌在一个文件里(后期维护灾难)。可以看到上节文章中Prometheus的告警已经发送到了Alertmanager这里了。创建规则文件(如node.yml),定义具体的告警条件(基于 PromQL 查询)。打开网址:https://prometheus.io/download/ 下载。
2025-11-03 11:39:34
678
原创 Prometheus实战教程 03 - 主机监控
Prometheus 进行主机监控主要通过部署 Node Exporter 来采集系统级指标,并将其与 Prometheus Server 进行配置连接,最后可通过 Grafana 进行数据可视化。默认配置可直接启动,如需自定义端口、数据存储路径等,修改/data/middleware/grafana-v9.5.21/conf/defaults.ini。打开Window主机浏览器,输入地址:http://192.168.37.21:9100/通过默认的账户密码: admin/admin 访问。
2025-11-01 20:26:52
819
原创 Minikube 安装与使用详细指南(Centos7 踩坑版)
Minikube 是一个用于在本地运行单节点 Kubernetes 集群的工具,适合开发、测试和学习 Kubernetes。所以我加了-- force 执行了 minikube start --force 还算顺利的启动了。X 因 DRV_AS_ROOT 错误而退出:docker 驱动不应使用 root 权限。Minikube 会自动配置。
2025-10-29 14:50:08
835
原创 网络性能测试工具 - netperf
netperf是一款专注于网络性能测试的开源工具,核心用于测量TCP和UDP协议在不同网络场景下的吞吐量、延迟等关键指标。清单会包含吞吐量、延迟测试等典型场景的命令示例,以及关键参数的说明,方便你直接复制使用。要不要我帮你整理一份。
2025-10-27 22:24:27
452
原创 CentOS 7上通过二进制包安装docker和docker-compose
通过以上步骤,即可在CentOS 7上完成Docker的二进制安装,适用于离线环境或需要精细控制安装路径的场景。从Docker官方仓库下载对应版本的二进制包(以。如果无法联网,可在其他机器下载后通过。
2025-10-27 14:46:55
535
原创 Centos7 停止维护一年后,还有多少人在使用,离线升级内核记录&&替代方案选型
但是因为CentOS 7 于 2024 年 6 月 30 日停止官方维护后,很多rpm包的源都停止了更新和移除。根据实际业务场景(兼容性、成本、合规性)选择最适合的方案,迁移前建议进行充分的兼容性测试。根据网上的文章参考的方法,先安装ELRepo源,然后在线安装内核。看来除非不得以的场景,是时候跟Centos7告别了。本来计划给我的Centos7.6操作系统升级内核。
2025-10-21 16:58:57
919
原创 ES集群最大分片限制报错处理
Elasticsearch集群因达到2000分片上限导致集成日志无法写入。解决方案包括:删除无用索引释放资源;临时提高集群最大分片限制;优化索引设计策略减少分片数量;检查分片分布情况。官方建议保持合理分片数量(20-25/GB堆内存),优先考虑优化索引设计而非单纯提高限制。
2025-10-13 17:45:12
279
原创 Redis MONITOR 命令详解
MONITOR是 Redis 实时调试的“利器”,但因其对主线程的阻塞特性,严禁在生产高并发场景下长期使用。仅在问题排查时临时启用,排查完成后立即退出;结合grep等工具过滤目标命令,减少无用输出;通过命令重命名或 ACL 权限控制,防止未授权使用。若需长期监控,优先选择 AOF 日志或第三方审计工具,平衡监控需求与 Redis 性能。
2025-09-18 17:58:25
1118
原创 Redis 协议(RESP)详解:请求与响应解析
Redis 采用 RESP(Redis Serialization Protocol,Redis 序列化协议)作为客户端与服务器之间的通信协议。简单易实现二进制安全高效解析部分人类可读本文档将按照请求和响应两个维度详细解析 Redis 协议,并提供完整案例。
2025-09-16 23:02:29
329
原创 SMTP讲解 + Python 发送邮件案例
SMTP(简单邮件传输协议)的端口和连接方式是邮件发送的核心技术细节,直接影响连接稳定性和安全性。不同邮箱服务商(如163、QQ、企业邮箱等)对端口和加密方式的支持存在差异,配置错误会导致“连接失败”“发送被拒”等问题。掌握端口与加密方式的对应关系,是解决“邮件发送失败”问题的核心技能,配置时务必严格匹配邮箱服务商的要求。,其中后两者是现代邮箱推荐使用的安全端口,25端口因安全性问题逐渐被淘汰。SMTP 协议常用的端口有。
2025-09-16 17:03:58
869
原创 基于Golang + vue3 开发的 kafka 多集群管理
主要是解决,Kafka多集群分散运维、监控盲区、权限混乱、数据孤岛等痛点;提升运维效率,解决命令行低效的问题。kafka数据通过yaml文件保存,支持前端增删改查yaml文件。核心框架:Vue3 + Vite(构建效率与性能优化)这里显示了Brokers列表和Topic列表。UI 组件库:Ant Design Vue。Kafka 交互:sarama。语言:TypeScript。安全: 基于Basic认证。核心语言:Golang。这里展示了消费者组列表。Topic列表,详情。Web 框架:Gin。
2025-09-09 13:07:44
168
原创 Vue 3 项目中引入 Iconify
Iconify 是一个开源的图标管理工具,它提供了超过 100,000 个高质量图标,来自自 100 多个流行图标集(如 Material Icons、Font Awesome、Ant Design Icons 等)。与传统图标库不同,Iconify 采用按需加载方式,只加载你实际使用的图标,大幅减少资源体积。包含海量图标,覆盖几乎所有常见图标集支持多种格式(SVG、JSON 等)无需完整导入整个图标库,按需加载支持自定义颜色、大小等样式与主流前端框架无缝集成<Icon/>
2025-09-05 17:32:42
1133
原创 Redis 的 SUBSCRIBE 命令
命令用于订阅一个或多个频道,以便接收发送到这些频道的消息。这是 Redis 实现发布/订阅(Pub/Sub)功能的核心命令之一。命令可以轻松实现基于 Redis 的消息通知系统,适用于实时通信、事件通知等场景。
2025-09-03 14:45:00
529
原创 MySQL数据库恢复步骤(基于全量备份和binlog)
执行查询确认关键数据是否恢复到断电前状态。备份当前数据库的数据目录(防止意外)停止当前故障的MySQL服务。重新初始化MySQL数据目录。登录数据库验证数据完整性。
2025-09-03 10:41:05
928
原创 myql报错: Assertion failure: btr0pcur.cc:318:page_is_comp(next_page) == page_is_comp(page)
是MySQL中InnoDB存储引擎的一个重要参数,用于在数据库出现损坏等特殊情况下强制启动InnoDB存储引擎,以便尽可能地恢复数据。当这个断言失败时,说明 InnoDB 在遍历 B-tree 页面时,发现相邻页面的压缩状态不匹配,违反了 InnoDB 内部的数据结构一致性规则。内存损坏(导致数据在内存中被篡改)或磁盘控制器故障,可能导致写入的数据页状态异常。,通常与 InnoDB 数据页的一致性问题相关。特定版本的 MySQL/MariaDB 中,InnoDB 处理压缩表((要么都压缩,要么都不压缩)。
2025-09-02 17:26:49
689
原创 基于 GTID 实现 MySQL 8.0 的主从复制
通过以上步骤,可基于 GTID 实现 MySQL 8.0 的主从复制,GTID 机制能自动处理复制位置,减少人工干预,提高可靠性。,确保稳定在 0 或较小值(如 < 10 秒)。
2025-09-01 13:46:04
737
原创 jemalloc 介绍 && MySQL 配置jemalloc 指南
jemalloc 是一款高性能、低内存碎片的内存分配器,由 Jason Evans 开发,最初为 FreeBSD 操作系统设计。它通过优化的内存管理策略,有效解决了传统内存分配器在多线程环境下的性能瓶颈和内存碎片问题,目前被广泛应用于 Redis、MongoDB、Firefox、MySQL 等高性能软件中。
2025-09-01 12:53:11
957
原创 Consul 操作命令汇总 - Prometheus服务注册
通过以上步骤,Prometheus 会自动从 Consul 同步服务列表,并根据服务的 IP、端口和标签动态调整采集目标,实现服务的自动发现和监控。首先需要将你的业务服务注册到 Consul(可以是 API 服务、数据库等需要被 Prometheus 监控的目标)。Consul 所有功能均通过 HTTP API 暴露,适合程序(如 Java、Python 等)与 Consul 集成。通过以上两种方式,均可获取 Kafka 服务的实例列表、IP、端口及健康状态等信息。:数据重标签(处理服务元数据)
2025-08-29 22:20:40
1326
原创 MySQL配置 - innodb_strict_mode
- 严格模式下会报错id INT,name VARCHAR(10000) -- VARCHAR 最大长度通常为 65535,但实际受行格式限制严格模式(ON):直接报错非严格模式(OFF):自动调整为最大合法长度并警告。
2025-08-28 15:08:27
945
原创 从零开始学 Selenium:浏览器驱动、元素定位与实战技巧
Selenium是一个用于Web应用程序自动化测试的工具集,支持多浏览器(Chrome、Firefox、Edge等)、多语言(Python、Java、C#等),核心功能是模拟人类操作浏览器(点击、输入、跳转等)。
2025-08-21 10:35:45
1495
原创 前后端token自动续期方案
追求安全性:优先选Refresh Token 机制(双 Token 体系)。追求简单实现:选滑动窗口续期(无 Refresh Token)。追求请求成功率:选主动预检续期(前端提前处理)。实际场景中,可结合业务需求(如用户活跃度、安全等级)选择方案,核心是在“用户体验”与“安全性”之间找到平衡。
2025-08-20 09:33:56
1331
基于Golang+vue3实现了kakfa集群管理工具
2025-09-09
第二节:Vben Admin v5 (vben5) Python-Flask 后端开发详解(附源码)
2025-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅