自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Gin 日志实战】参考 GoFrame 优雅实现日志拆分 + 双输出(终端 + 文件),排查问题效率翻倍!

本文介绍了如何为Gin框架打造企业级日志方案,借鉴GoFrame日志模块的设计思想。方案实现了日志按业务拆分(访问/错误/运行/SQL日志)、终端+文件双输出、自动轮转等核心功能,采用JSON结构化格式便于解析。通过YAML配置文件集中管理参数,基于zap高性能日志库和lumberjack轮转组件实现,具有配置灵活、性能优异、易于扩展等优势。代码精简可直接复用,能显著提升Gin项目的日志管理能力。

2025-12-02 18:03:41 279

原创 Kafka 启动炸了:node id 不匹配?NFS 旧数据清理 + ID 绑定一招根治

Kafka节点ID冲突问题解决方案:当从静态PV切换到动态StorageClass时,Kafka Pod启动报错"Stored nodeid 1 doesn't match previous nodeid 0",这是由于NFS上残留旧数据导致ID冲突。解决步骤:1) 停止所有Kafka Pod;2) 登录NFS服务器删除meta.properties文件;3) 重建Pod让Kafka生成匹配的新ID。永久避坑方案包括:强制绑定Pod序号与broker ID、动态PV目录与Pod序号强绑定

2025-11-28 17:22:58 878

原创 别再手动创 PV 了!K8S+NFS 动态 PV:StorageClass 一键解决关机阻塞 + 状态混乱

文章摘要:本文介绍了使用StorageClass+NFS动态供给器替代手动创建Kafka静态PV的方法,解决传统方式存在的四大痛点:重复劳动易出错、mountOptions配置遗漏、PVC/PV绑定混乱以及删除卡Terminating问题。通过部署NFS动态供给器和配置StorageClass,实现了PV自动创建、统一挂载选项设置和生命周期管理,特别解决了NFS关机阻塞问题。最终效果达到关机不阻塞、管理更省心、状态更稳定的目标,显著提升K8S部署有状态应用的存储管理效率。

2025-11-27 08:57:06 570

原创 K8S PVC/PV 卡 Terminating 删不掉?我试了 10 种方法,这 5 步才是终极解决方案!

摘要: Kafka PVC删除时卡在Terminating状态,原因是“Pod占用+NFS挂载”双重死锁。解决方案分5步:1) 定位占用PVC的Pod及节点;2) 登录节点强制卸载NFS挂载点;3) 强制删除相关Pod;4) 清空PVC/PV的finalizer;5) 删除PVC/PV。按此顺序操作可彻底解除死锁,解决Terminating问题。关键点在于先释放NFS挂载再处理Pod和锁,顺序错误会导致失败。

2025-11-26 17:36:37 1134

原创 K8S 部署 Kafka 挂载 NFS 关机卡到崩溃?我踩了 3 小时坑,靠 soft+timeo 终于秒关!

摘要: 在K8S集群中部署Kafka时,使用NFS存储默认的hard挂载模式会导致关机时系统卡死(stopjob无限等待)。问题根源在于hard模式下NFS客户端会阻塞等待服务器响应,而Kafka关机时未完成的写操作会触发此阻塞。解决方案是为PV配置mountOptions,改用soft模式并设置超时参数(如timeo=30),使请求超时后主动终止而非死等。需注意mountOptions需写在PV的spec一级字段,并确保删除旧PV/PVC后重新绑定。验证挂载选项生效后,关机时系统将不再阻塞,大幅提升稳定性

2025-11-26 17:33:14 871

原创 Python 多线程并发改造 Kafka 巡检:从 2 小时到 9 分钟的提速实践

本文介绍了如何通过Python多线程优化Kafka集群巡检效率,将1600+个topic的巡检耗时从2小时缩短至9分钟。原单线程串行处理5000+次Prometheus导致效率低下,改造方案采用ThreadPoolExecutor实现10个线程并发,每个线程独立处理单个topic的3个指标(max/min/avg),并通过超时控制和异常隔离保障系统稳定性。关键点包括任务拆分封装、并发数控制、结果异步聚合等,改造后显著提升了巡检效率,避免了Prometheus过载风险,为大规模Kafka集群提供了高效解决方案

2025-11-18 12:22:23 229

原创 【vue3优化】用函数的形式创建一个组件

我们编写了Message组件,它可以有弹出提示、成功、错误等弹窗的功能。现在我们的组件都是嵌套在组件树中展示的,但是Message组件使用这种方式会感觉比较奇怪,这个提示错误或成功的信息的组件:它应该是像一个函数一样,进行工作的:就像alert一样,调用一个函数,弹出提示,点击关闭,或者过一会儿消失。这就是实现组件的一种方式:函数调用式组件创建了一个函数,叫createMessage。

2024-03-20 15:02:15 802 1

原创 【vue3优化】markdown-it -- markdown 转换成html

1.首先下载markdown-it包// 除了本体,还要安装type文件2.导入3.使用//假设需要转换的是下面的代码const markdownText = ref('# 巧妹儿的标题!;```console.log("巧妹")```')

2024-03-19 16:04:59 4258 1

原创 k8s_SpringCloud架构解析

无论什么语言,什么框架,它们容器化的原理都是一样的三步:编译生成的产物,或者不用编译,再通过dockerfile生成业务的镜像前端调用后端:通过nginx upsteam服务之间的调用,serviceA 通过nginx反代到servceB,通过域名xxx.com/servciceB 到serviceB如果serviceA有多个实例,就是在nginx的upstream再加一个IP地址和端口nginx不能有一个,否则会出现单点故障,前端有多个。

2024-03-19 15:21:41 2337 1

原创 [vue3 配置] import 图片无法识别的问题.md

Cannot find module '@/assets/column.jpg' or its corresponding type declarations.为啥报这个错误?typescript无法识别图片文件,需要在配置中增加声明。在tsconfig.json增加图片配置。vue3引入图片,路径没错,但无法识别。新建image.d.ts文件。

2024-03-18 10:38:26 716 1

原创 [vue3优化] Vue3 的 `props` 应该是只读的,用 import 代替 require

2. 使用 `require` 在计算属性中可能会导致问题,因为 `require` 的结果可能无法在模板中正确解析。`setup()` 函数,配置了一个名为 `PostList` 的计算属性,这个计算属性返回一个处理过后的帖子列表。1. 直接修改 `props.list` 中的元素可能不是一个好主意,因为 Vue 的 `props` 应该是只读的。这样使用了 `import` 来引入默认图片,并且创建了一个新的处理后的帖子列表,而不是直接修改原始的 `props.list`。

2024-03-18 10:33:58 849

原创 [vue3优化]设计结构:从时间复杂度为 O(n) 优化到 O(1).md

这是一个时间复杂度为 O(n) 的操作,意味着随着数组的增长,查找特定项所需的时间将线性增加。这种修改主要是为了提高数据结构的灵活性和访问效率,特别是在处理大量数据和需要频繁访问特定项的场景中。让我们分别看看修改前后的区别和修改的优势。总的来说,这种修改使得对专栏和文章的管理变得更加高效和灵活,特别是在需要频繁进行 CRUD(创建、读取、更新和删除)操作的大型应用中。作为键来访问特定的专栏或文章,这是一个时间复杂度为 O(1) 的操作,也就是说查找的速度不会随着数据量的增加而变慢。

2024-03-18 10:20:12 410

空空如也

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

TA关注的人

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