hj24.life

记一次扇贝账号服务的压测

按照经验估计,每年年后过来四六级查分的时候都是扇贝各个业务的高峰期,也是扇贝新用户注册的高峰,19 年账号服务刚上线的时候因为这波高峰挂掉过,于是每年春节放假前对账号系统做压测就成了传统,这一次也是我接手账号服务之后做的第一次压测,做个简单的记录。

Things I Don T Know as of 2020

去年的 Things I Don’t Know as of 2019

一年过去了,更新一篇作为年终总结。

一次P0事故引起的业务思考

背景是前几天的一次 P0 事故,我们当做数据库用的 redis 满了,触发了配置的 LRU 逐出策略,逐出了 20min 的 key,导致大概有 2w 用户当天的学习数据丢失,在处理过程中有很多值得总结的点,于是写下这篇博客。

Hugo使用指北

从 hexo 迁移到了 hugo,从安装到部署,记录一下使用流程。

从源码看flask是如何保证线程安全的

之前粗略的看过flask的文档,知道了它是线程安全的,大概是通过维护了一个以线程ID (在 Greenlet 可用的情况下优先使用 Greenlet 的 ID,因此协程也是一样的)为键的字典,里面放了分配给这个线程的资源来做到线程隔离,以此实现线程安全的目的。

写这篇博客是因为之前有个同事问我他写了个全局变量,在flask里是线程安全的吗? 当时没过脑子,直接回答了是,现在想想…应该是把他坑了

为了彻底弄明白这个问题,我搜了很多知乎,stackoverflow,reddit的问答,还有一些博客,也看了一遍相关的源码,最后写下这篇博客,做个记录。

Gitlab CI CD指北

之前在公司倒腾过基于Gitlab的CI/CD,现在重新记录一遍流程,做个备忘。

一个典型的流程是这样的:

提交代码触发CI pipeline -> 安装依赖、编译、自动化测试 -> fix bug -> 回到上一步 -> Review代码 -> 合并到发布分支 -> 触发CD -> 部署代码、发布

基本上更复杂一些的流程都是在这个基础上增改了,下面来走一遍这个流程。