- 博客(242)
- 资源 (1)
- 收藏
- 关注
原创 Vue 3 项目中引入 Iconify
Iconify 是一个开源的图标管理工具,它提供了超过 100,000 个高质量图标,来自自 100 多个流行图标集(如 Material Icons、Font Awesome、Ant Design Icons 等)。与传统图标库不同,Iconify 采用按需加载方式,只加载你实际使用的图标,大幅减少资源体积。包含海量图标,覆盖几乎所有常见图标集支持多种格式(SVG、JSON 等)无需完整导入整个图标库,按需加载支持自定义颜色、大小等样式与主流前端框架无缝集成<Icon/>
2025-09-05 17:32:42
339
原创 Redis 的 SUBSCRIBE 命令
命令用于订阅一个或多个频道,以便接收发送到这些频道的消息。这是 Redis 实现发布/订阅(Pub/Sub)功能的核心命令之一。命令可以轻松实现基于 Redis 的消息通知系统,适用于实时通信、事件通知等场景。
2025-09-03 14:45:00
423
原创 MySQL数据库恢复步骤(基于全量备份和binlog)
执行查询确认关键数据是否恢复到断电前状态。备份当前数据库的数据目录(防止意外)停止当前故障的MySQL服务。重新初始化MySQL数据目录。登录数据库验证数据完整性。
2025-09-03 10:41:05
775
原创 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
576
原创 基于 GTID 实现 MySQL 8.0 的主从复制
通过以上步骤,可基于 GTID 实现 MySQL 8.0 的主从复制,GTID 机制能自动处理复制位置,减少人工干预,提高可靠性。,确保稳定在 0 或较小值(如 < 10 秒)。
2025-09-01 13:46:04
644
原创 jemalloc 介绍 && MySQL 配置jemalloc 指南
jemalloc 是一款高性能、低内存碎片的内存分配器,由 Jason Evans 开发,最初为 FreeBSD 操作系统设计。它通过优化的内存管理策略,有效解决了传统内存分配器在多线程环境下的性能瓶颈和内存碎片问题,目前被广泛应用于 Redis、MongoDB、Firefox、MySQL 等高性能软件中。
2025-09-01 12:53:11
643
原创 Consul 操作命令汇总 - Prometheus服务注册
通过以上步骤,Prometheus 会自动从 Consul 同步服务列表,并根据服务的 IP、端口和标签动态调整采集目标,实现服务的自动发现和监控。首先需要将你的业务服务注册到 Consul(可以是 API 服务、数据库等需要被 Prometheus 监控的目标)。Consul 所有功能均通过 HTTP API 暴露,适合程序(如 Java、Python 等)与 Consul 集成。通过以上两种方式,均可获取 Kafka 服务的实例列表、IP、端口及健康状态等信息。:数据重标签(处理服务元数据)
2025-08-29 22:20:40
1082
原创 MySQL配置 - innodb_strict_mode
- 严格模式下会报错id INT,name VARCHAR(10000) -- VARCHAR 最大长度通常为 65535,但实际受行格式限制严格模式(ON):直接报错非严格模式(OFF):自动调整为最大合法长度并警告。
2025-08-28 15:08:27
594
原创 从零开始学 Selenium:浏览器驱动、元素定位与实战技巧
Selenium是一个用于Web应用程序自动化测试的工具集,支持多浏览器(Chrome、Firefox、Edge等)、多语言(Python、Java、C#等),核心功能是模拟人类操作浏览器(点击、输入、跳转等)。
2025-08-21 10:35:45
1136
原创 前后端token自动续期方案
追求安全性:优先选Refresh Token 机制(双 Token 体系)。追求简单实现:选滑动窗口续期(无 Refresh Token)。追求请求成功率:选主动预检续期(前端提前处理)。实际场景中,可结合业务需求(如用户活跃度、安全等级)选择方案,核心是在“用户体验”与“安全性”之间找到平衡。
2025-08-20 09:33:56
944
原创 线上 Java 问题难排查?Arthas帮你搞定
Arthas 是阿里巴巴开源的一款 Java 诊断工具,专为线上问题排查设计。它可以帮助开发者在不重启应用的情况下,实时查看 JVM 状态、类加载信息、方法调用参数与返回值、排查性能瓶颈等,是解决线上 Java 应用问题的利器。查看 JVM 内存、线程、GC 等实时状态反编译类文件,查看当前加载的代码监控方法执行耗时,定位性能问题查看方法调用参数和返回值动态修改日志级别排查类加载冲突等问题。
2025-08-19 15:32:07
496
原创 开源协议怎么选?一文读懂开源协议
选择协议时,需根据需求权衡:若希望代码被自由共享且衍生作品保持开源,选GPL/LGPL;若允许商业闭源使用,选MIT/Apache/BSD;若需平衡开源与闭源(仅修改文件开源),选MPL。(是否要求衍生作品开源)、商业使用限制、专利授权等方面。开源协议是规范开源软件使用、修改、分发的法律条款,核心差异体现在。
2025-08-19 14:32:40
884
原创 如何用好 Jupyter Notebook?从基础到多项目切换技巧
通过虚拟环境管理,可实现不同项目的依赖隔离,在 Jupyter 中高效切换,保持开发环境整洁。需先安装 Python(建议 3.3 及以上版本),可从。
2025-08-15 16:59:20
645
原创 Redis 启动时出现 “Bad file format reading the append only file“ 错误
当 Redis 启动时出现 “Bad file format reading the append only file” 错误,通常意味着 AOF(Append-Only File)文件存在格式损坏或数据错误。这可能是由于意外关机、磁盘故障或文件写入中断导致的。
2025-08-15 15:59:04
266
原创 Redis 崩溃不丢数据?揭秘Redis持久化
特性RDBAOF混合持久化数据安全性低(可能丢失大量数据)高(最多丢失1秒数据)高(结合两者优势)恢复速度快(二进制解析)慢(重放命令)较快(RDB+增量AOF)文件体积小大中等适用场景备份、容忍数据丢失高安全性要求平衡速度与安全性若追求速度和备份便捷性,选 RDB;若要求高数据安全性,选 AOF;若想平衡两者,优先启用混合持久化。
2025-08-15 15:39:59
1068
原创 redis 内存使用率高居高不下,如何分析 key占用情况
清理大key:对非必要的大key直接删除,或拆分(如将大哈希拆分为多个小哈希)。设置合理的过期时间:对临时数据(如缓存)通过EXPIRE设置过期时间,利用Redis自动清理。优化数据结构字符串:若存储JSON等结构化数据,可改用哈希(hash)节省内存。哈希/集合:启用压缩列表(ziplist)配置(如),小数据更高效。处理内存碎片:若过高(如>1.5),可重启Redis(需提前做好持久化)。
2025-08-13 20:49:57
857
原创 Windows 系统的 Python 版本管理工具 - pyenv-win
pyenv-win 是一个用于 Windows 系统的 Python 版本管理工具,它可以帮助你在同一台电脑上安装、管理和切换多个 Python 版本,非常适合需要在不同项目中使用不同 Python 版本的开发场景。通过 pyenv-win,你可以轻松在不同 Python 版本间切换,避免因版本差异导致的项目兼容性问题,是 Python 开发者的实用工具。
2025-08-11 15:41:20
1109
原创 Minio部署和客户端使用 - 版本 2025-05-24T17-08-30Z
MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。MinIO在双重许可证下发布,一个是 AGPL v3.0 和 MinIO商业许可证.
2025-08-04 21:42:47
819
原创 Prometheus实战教程 02 - Prometheus 配置详解
Prometheus 的配置通过命令行标志和配置文件实现命令行标志:配置不可变的系统参数(如存储位置、数据保留量等)配置文件:定义与抓取相关的所有内容(作业和实例)以及要加载的规则文件配置可在运行时重新加载,通过发送SIGHUP信号或向/-/reload端点发送HTTP POST请求(需启用标志)若新配置格式不正确,更改不会生效。
2025-07-30 17:00:54
989
原创 Prometheus实战教程 01 - Prometheus 简介和架构
Prometheus 是一套开源的监控告警系统,最初由 SoundCloud 开发,后成为 Cloud Native Computing Foundation(CNCF)的毕业项目,广泛用于云原生环境、微服务架构的监控。其设计理念聚焦于时序数据的采集、存储与分析,能高效处理大规模分布式系统的监控需求。Prometheus 专为监控动态服务环境基于时序数据模型存储监控指标(如服务器 CPU 使用率、API 响应时间);通过Pull 模式主动抓取目标服务的指标数据;支持灵活的查询语言(PromQL)
2025-07-30 13:13:11
824
原创 Kafka运维实战 17 - kafka 分区副本从 1 增加到 3【实战】
创建,格式如下(以},},},},},配置说明replicas数组中,第一个元素为原副本(保持 leader 不变,减少迁移开销),后两个为新增副本的 broker ID。确保新增的 broker(如 1、2、3)均正常运行,且集群总 broker 数量 ≥ 3(否则无法分配 3 个副本)。log_dirs 用于指定每个副本存放的日志目录,默认用 “any” 表示由 Kafka 自动分配。
2025-07-29 15:41:01
260
原创 Kafka运维实战 16 - kafka 分区重新分配【实战】
-bootstrap-server <bootstrap-server-list> # KRaft 控制器或 broker 的地址(必填)--broker-list <String: brokerlist> # "0,1,2" (与--topics-to-move-json-file 配合)[--command-config <config-file>] # 客户端配置文件(如认证信息)[--reassignment-json-file <file>] # 包含分区重分配计划的 JSON 文件。
2025-07-29 15:08:34
604
原创 Kafka运维实战 07 - kafka 三节点集群部署(混合模式)(KRaft 版本3.7.0)
在关键的部署环境中,不建议使用组合模式。Kafka KRaft 版本(即 Kafka 3.0 及更高版本)使用 KRaft 模式(Kafka Raft 协议)替代 ZooKeeper 进行集群管理,简化了部署流程。Kafka 是用 Scala 和 Java 开发的,因此需要特定版本的 Scala 编译。版本号中的 2.13 表示该 Kafka 版本是用 Scala 2.13.x 编译的。不覆盖修改,则启动的JVM参数采用bin/kafka-server-start.sh 默认。前台启动(方便调试)
2025-07-25 16:17:09
1183
原创 Kafka运维实战 15 - kafka 重设消费者组位移入门和实战【实战】
传统消息中间件,它们处理和响应消息的方式是破坏性的(destructive),即一旦消息被成功处理,就会被从 Broker 上删除。反观 Kafka,由于它是基于日志结构(log-based)的消息引擎,消费者在消费消息时,仅仅是从磁盘文件上读取数据而已,是只读的操作,因此消费者不会删除消息数据。同时,由于位移数据是由消费者控制的,因此它能够很容易地修改位移的值,实现重复消费历史数据的功能。
2025-07-25 14:25:24
1229
原创 Kafka运维实战 14 - kafka消费者组消费进度(Lag)深入理解【实战】
在消息队列系统(如 Kafka)中,消费者 Lag(也称为 “滞后量”)是衡量消费者(或消费者组)处理消息进度的核心指标,它表示尚未被消费的消息数量。具体来说,Lag 的计算方式是:Lag = 分区当前最大偏移量(Max Offset) - 消费者已提交的偏移量(Committed Offset)最大偏移量(Max Offset):分区中最新一条消息的位置(即已经生产的消息总量标识)。
2025-07-24 13:19:40
885
原创 Kafka运维实战 05 - kafka 消费者组和重平衡(Rebalance)
消费者组是指共同订阅同一个主题(Topic) 的多个消费者的集合。每个消费者组都有一个唯一的标识(Group ID),组内的消费者通过协作分工,共同消费主题中的消息。组内消费者共享消费进度,由消息队列的协调器(Coordinator) 统一管理。主题中的每个分区(Partition) 只能被同一消费者组内的一个消费者消费(避免重复消费)。消费者组之间相互独立,不同组可以同时消费同一主题的消息(实现多场景消费)。理想情况下,Consumer 实例的数量应该等于该 Group 订阅主题的分区总数。
2025-07-23 17:38:02
1138
原创 Kafka运维实战 13 - kafka 动态调整Broker, Topic的配置【实战】
kafka-configs.sh 是 Kafka 提供的一个命令行工具,用于管理 Kafka broker、主题 (topic)、消费者组 (consumer group) 等资源的配置。
2025-07-23 15:05:39
914
原创 Kafka运维实战 12 - kafka主题管理详解【实战】
删除操作是异步的,执行完这条命令不代表主题立即就被删除了。它仅仅是被标记成“已删除”状态而已。Kafka 会在后台默默地开启主题删除操作。在 Kafka 中,复制因子不能大于可用的 broker 数量,因为每个副本需要存储在不同的 broker 上以保证高可用性。工具用于管理主题(topics),包括创建、查看、修改和删除等操作。在 Kafka 的 KRaft 模式(无 ZooKeeper)中,注意:在 KRaft 模式下,不再使用。注意:删除主题需要 broker 配置。
2025-07-22 18:04:02
1012
原创 Kafka运维实战 11 - kafka查看消息的具体内容【实战】
这些文件共同协作,使得 Kafka 能够高效地进行消息的存储、查询和消费,满足高吞吐量、低延迟的消息传递需求。每个分区的这些文件通常存放在同一个目录下,目录以“主题名-分区号”命名。通过上述方法,可以清晰地查看 Kafka 日志文件的内容和结构,帮助排查消息存储相关的问题。我们有时候遇到这样的需求,需要查看下kafka消息的内容。Kafka 按「主题-分区」划分目录,例如。类的封装),可更友好地解析日志文件。配置的目录下(默认路径通常为。Kafka 的日志文件(进入具体分区的日志目录。
2025-07-22 13:03:07
878
原创 Kafka运维实战 10 -kafka 生产和消费 性能测试工具【实战】
是 Kafka 提供的官方生产者性能测试工具,用于评估向 Kafka 主题发送消息的性能表现。它可以帮助你测试生产者吞吐量、延迟等关键指标,优化生产者配置或评估集群写入能力。是 Kafka 提供的一个性能测试工具,用于评估消费者的性能表现。它可以帮助你测试消费者从 Kafka 主题读取消息的吞吐量、延迟等关键指标。
2025-07-21 17:53:23
830
原创 Kafka运维实战 09 - kafka 生产消息和消费消息用法【实战】
是 Kafka 提供的一个命令行工具,用于向 Kafka 主题发送消息(即生产消息)。它允许你在终端中手动输入消息,或从文件、其他命令的输出中读取消息并发送到 Kafka。以下是使用 的基本命令格式:常用参数说明: 指定 Kafka broker 的地址(例如 ),用于建立初始连接。: 指定要发送消息的主题名称。: 设置额外的生产者配置,例如:: 启用键值对模式(需要配合 使用)。: 指定键和值之间的分隔符(默认为制表符 )。: 指定生产者配置文件的路径。 用于控制生产者发送消
2025-07-21 16:44:02
876
原创 Kafka运维实战 08 - kafka 3.7脚本工具最全整理汇总【建议收藏】
Kafka 脚本工具是 Apache Kafka 提供的一系列命令行工具,用于管理、监控和操作 Kafka 集群。这些工具位于 Kafka 安装目录的 bin 目录下(Windows 系统为 .bat 文件,Linux/Mac 为 .sh 文件)。以下是一些核心脚本工具的详细介绍kafka-broker-api-versions.sh 是 Kafka 自带的一个重要脚本工具,用于查询 Kafka Broker 支持的 API 版本信息。
2025-07-18 15:40:32
1270
原创 Kafka运维实战 06 - kafka 单机部署指南(混合模式)(KRaft 版本3.7.0)
Kafka KRaft 版本(即 Kafka 3.0 及更高版本)使用 KRaft 模式(Kafka Raft 协议)替代 ZooKeeper 进行集群管理,简化了部署流程。Kafka 是用 Scala 和 Java 开发的,因此需要特定版本的 Scala 编译。版本号中的 2.13 表示该 Kafka 版本是用 Scala 2.13.x 编译的。不覆盖修改,则启动的JVM参数采用bin/kafka-server-start.sh 默认。这里展示了历史的kafka各个版本。前台启动(方便调试)
2025-07-18 12:36:15
855
原创 Kafka运维实战 04 - Kafka 控制器(Controller)详解:架构、原理与实战
右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。本文将深入解析控制器的工作原理、配置要点及运维实践,帮助你全面掌握这一关键组件。左图为 Kafka 架构,元数据在 zookeeper 中,运行时动态选举 controller,由 controller 进行 Kafka 集群管理。
2025-07-17 15:15:08
1164
2
原创 Kafka运维实战 03 - Kafka 配置参数详解:ZooKeeper 模式与 KRaft 模式对比
ZooKeeper 模式是 Kafka 传统架构,依赖 ZooKeeper 集群管理元数据(如 Topic 信息、分区副本分配、broker 存活状态等)。broker 启动时向 ZooKeeper 注册自身信息;broker 通过 ZooKeeper 监听集群变化(如其他 broker 加入/退出);控制器(Controller)节点从 ZooKeeper 获取元数据并同步给其他 broker。
2025-07-17 13:04:20
815
原创 nerdctl - 兼容 Docker 语法 的 containerd 命令行界面
Nerdctl 是一个专为 containerd 环境设计的容器运行时工具,它与 Docker 语法兼容,提供了类似的命令行接口,但专注于更高效的容器管理。nerdctl 是 containerd 的一个非核心子项目。
2025-07-16 14:12:51
722
3
原创 Kafka运维实战 02 - 深入理解 Kafka主题、分区与副本的协同机制
Kafka 的 ** 主题(Topic)、分区(Partition)和副本(Replica)** 是构建分布式消息系统的核心概念,三者协同工作实现高吞吐量、水平扩展和数据冗余。以下从定义、关系、工作机制和配置等方面进行详解
2025-07-16 13:02:08
1214
原创 【监控实战】Grafana自动登录如何实现
原理是在Nginx 自动添加 Authorization Header 携带认证密码。代理grafana, 自动登录 test 只读用户。
2025-07-15 11:29:29
357
第二节:Vben Admin v5 (vben5) Python-Flask 后端开发详解(附源码)
2025-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人