小Cの已经记不起来的博客

↓ 向下滚动

使用 Rust 和 Tokio 构建高并发日志采集服务的架构设计与性能调优记录

使用 Rust 和 Tokio 枭构高并发日志采集服务的架构设计与性能调优记录 起因 事情是这样的,我们线上大概有二三十台机器,日志统一用 Filebeat 采集丢到 Kafka,再由下游消费。之前一直相安无事,直到有一天运营搞活动,流量翻了几倍,几台采集机的 Filebeat 直接把内存吃满触发 OOM 被 kill,重启过后又得从 registry 重新对位,高峰期就这么丢了十几分钟的日志。 ...

阅读更多

大模型就几十GB,为什么能够记住世界上几乎所有的知识

大模型就几十GB,为什么能够记住世界上几乎所有的知识

阅读更多

PostgreSQL 索引与 连接池 的正确姿势

PostgreSQL 索引与 连接池 的正确姿势 最近接手了一个跑了好几年的老服务,数据库早就迁到 PostgreSQL 上了,一直相安无事。结果上周开始接口突然变慢,偶尔一个请求要好几秒才返回,过一会儿还蹦出来一个 FATAL: sorry, too many clients already。我的第一反应特别朴素:机器不行了,升配!差点就下单了,冷静下来翻了翻日志和监控才发现,锅一半在索引,一半...

阅读更多

Rust 所有权模型与 限流 的思考

Rust 所有权模型与 限流 的思考

阅读更多

Git 工作流中的 数据脱敏 最佳实践

Git 工作流中的 数据脱敏 最佳实践 前几天想给一个老项目换个 CI,顺手把仓库重新 clone 下来翻了翻,结果 git log -p 看历史的时候发现,两年前调试的时候把一份带真实数据库密码和 OSS AccessKey 的配置文件直接提交上去了,后面虽然把文件删了,但懂 Git 的都知道,删了不代表没了,历史里全都在,仓库是私有的不假,但看着还是膈应,没准儿哪天 token 泄了或者手一抖...

阅读更多

数据脱敏:写给初学者的通俗解释

数据脱敏:写给初学者的通俗解释 前几天帮朋友排查他们测试环境的一个问题,顺手查了张用户表,好家伙,几十万条真实的手机号和身份证号直接躺在里面。一问才知道,是当初图省事从生产库整库导出来的。我说你们这么搞,测试库权限一放开,等于全公司都能看到用户隐私,出了事都没地儿哭去。后来跟他聊了半天数据脱敏,这篇就把那天聊的东西整理一下,写给刚入行的同学,懂的可以直接关了。 到底什么是数据脱敏 说白了,数据脱敏...

阅读更多

WebSocket 实时通信与 文件上传 应用

WebSocket 实时通信与 文件上传 应用 前阵子给一个内部小工具加需求:任务在后台跑,跑完了页面要能立刻收到通知,顺便还得支持把生成的日志文件传回服务器。一开始我图省事用的轮询,前端每两秒请求一次接口,结果多开几个页面后端 CPU 就开始飘红了... 于是老老实实换成了 WebSocket,文件上传也顺手走了同一条连接,中间踩了不少坑,这里把实测能跑的方案记一下,免得下次又从头摸一遍。 为什...

阅读更多

WebSocket 实时通信与 热更新 应用

WebSocket 实时通信与 热更新 应用 起因是这样的:最近在改一个小项目,纯静态的 HTML + JS,没上任何构建工具。每次改完代码都得切到浏览器按一下 F5,改一下午下来光刷新就按了上百次,人都麻了。想着 Vite 那个热更新用起来不是挺舒服的吗,一查资料才发现它底层靠的就是 WebSocket,那干脆自己动手写个乞丐版,顺便把 WebSocket 这东西摸熟一点。 为什么是 WebSo...

阅读更多

PostgreSQL 索引与 配置中心 的正确姿势

PostgreSQL 索引与 配置中心 的正确姿势 前阵子把公司配置中心的存储从 MySQL 迁到了 PostgreSQL,刚切完那会儿一切正常,跑了两三个月之后,同事突然跟我说,发布配置的页面转圈越来越久,翻一下配置变更历史要三四秒才出来。我寻思配置中心能有多大数据,进库里一看,好家伙,变更历史表已经攒了八百多万行了... 行吧,当初偷的懒,迟早是要还的。 先搞清楚慢在哪,别急着加索引 加索引之...

阅读更多

Kubernetes 消息队列 配置避坑指南

Kubernetes 消息队列 配置避坑指南 前阵子把消息队列从裸机迁到 K8s 上,本以为就是个写写 yaml 的事儿,结果 RabbitMQ 加 Kafka 前后折腾了一个多星期,中间踩的坑一个接一个,有些报错跟实际问题八竿子打不着,排查起来相当折磨(也可能是我太菜了...)。这里把印象比较深的几个坑记一下,没准儿能帮后来的人少走点弯路。 先交代一下环境:K8s 1.28,RabbitMQ 用...

阅读更多
未在播放