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

↓ 向下滚动

为 Python 数据处理脚本编写可维护的单元测试

为 Python 数据处理脚本编写可维护的单元测试 从一次翻车说起 上个月有个跑了小半年的数据清洗脚本突然出了问题:上游把 orderdate 这一列的格式从 2024-01-01 换成了 2024/1/1,脚本没报错,就是默默吐出一堆空值,等业务那边找过来的时候,脏数据已经进了库。排查花了一下午,改脚本只花了两分钟,这就很难受了。 痛定思痛,决定给这些脚本补上单元测试。结果一搜教程,清一色都在教...

阅读更多

Spring Boot 应用中的优雅停机配置与验证方法

Spring Boot 应用中的优雅停机配置与验证方法 前阵子发版的时候直接 kill 掉了正在跑的服务,结果运营过一会儿找过来说用户下单下到一半页面直接报错,看了一眼网关日志,一堆 connection reset。仔细一想才反应过来,Spring Boot 默认的停机方式就是把内嵌的 Tomcat 直接关掉,正在处理的请求也不管了,连接说断就断,对用户来说就是操作到一半突然报错。这事儿说大不大...

阅读更多

用 Docker Compose 搭建本地多服务开发环境的注意事项

用 Docker Compose 搭建本地多服务开发环境的注意事项 最近接手了个老项目,README 里光启动本地环境就列了七八条命令:先起 MySQL,再起 Redis,跑一遍迁移脚本,改环境变量,最后还得手动往 hosts 里加一条本地域名。每次换机器或者拉新同事都要陪着重来一遍,烦得不行,索性花了个晚上用 Docker Compose 把这堆东西全塞了进去。过程不算顺利,踩了几个坑,记录一下...

阅读更多

使用 PostgreSQL 部分索引优化高频查询的实践与效果对比

使用 PostgreSQL 部分索引优化高频查询的实践与效果对比 起因 前段时间盯 Grafana 的时候发现,有个轮询接口的响应时间从十几毫秒慢慢爬到了八百多毫秒,而且还在涨。这个接口挺重要的,每五秒被调用一次,专门用来捞待处理的消息,慢成这样,下游已经开始超时重试了。 表结构大概长这样(简化过的): 查了一下行数,四千多万行。但真正处于 pending 状态的,峰值也就几千条,剩下的全是已经发...

阅读更多

使用 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 泄了或者手一抖...

阅读更多

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

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

阅读更多
未在播放