你说的下游是 upstream 吧?

工作中,有一些术语比较容易混淆,聊半天,最后发现双方对术语的理解不一致。这个时候用英文原本的表达或者换一种方式来表述能让沟通更顺畅。 像我们经常说的『上下游』便是经常发生混淆的一对名词。 以前,我经常说『梳理一下我们依赖的下游』,后来发现这种说法是错误的。正确的是:梳理一下我们依赖的上游。 是不是听着很奇怪? 可以这样理解,越是上游的地方,越是离源头更近的地方,源头就是指数据源。 对于互联网服务用 …...

阅读全文

将博客迁移到了 Cloudflare Pages

上个月把博客从 hexo 迁移到了 hugo,博客数据、发布流程全部托管到 github。之后把之前写的一篇《那些年曹大写的文章》搬了过来,其他文章暂时下线了。 上周在折腾博客 css 的时候,aofei 说不如迁移到 Cloudflare,还能全球 cdn 加速。于是又动手迁移到 Cloudflare Pages,顺便又修改了一些 css,目前博客样式比较顺我的意。这篇文章记录下折腾的过程,希望 …...

阅读全文

那些年曹大写的文章

某天晚上看到曹大在群里指点江山,折服。感叹为何曹大如此渊博,遂决定从头到尾研读完他所有的博文。 前后共花了一个月的时间,今天终于读完了(2020-11-24~2020-12-26),总共 118 篇。从 15 年 10 月 31 日开始的第一篇,到今天,总共写了 5 年多的时间。基本上每半个月产出一篇,非常稳定。 从最初讲具体的工作,例如将 MySQL 数据导入到 ES,到近期的《中台的末路》、《 …...

阅读全文

最重要的是内容

最近,看曹大依然在坚持固定频率发新的文章,非常佩服。今年是我写博客的第四年,因为各种原因,上半年基本没有发表新东西,非常惭愧。养成一个好习惯很难,破坏却很容易。 这次将博客改用 hugo 搭建。最早 qcrao.com 是用 hexo 在 mac 渲染,然后将 public 推到 github 上的 qcrao.github.io。坏外是需要在 mac 上安装一堆前端的依赖,这些依赖大都年久失修。 …...

阅读全文

你应该如何选择笔记软件

前言 市面上有非常多的笔记软件,让人眼花缭乱。如何选择适合自己的呢?我从下面几点谈谈我的理解。 这个视频里展示了一张非常全的笔记软件全家福,里面的软件我多多少少都用过或听说过。 搜索引擎能替代笔记软件吗 当我们记得笔记越来越多的时候,找内容就只能靠搜索了。于是有人就想,我不记笔记了,直接用搜索引擎多好啊。 仔细想想如果我们什么笔记都不记,一切都依赖搜索引擎,可行吗?毕竟所有的知识都可以在搜索引擎上 …...

阅读全文

二分法如何排查问题版本

二分法表面上看很简单,但历史上出现第一个没有 bug 的二分法代码还颇费了一番工夫。虽然我们在日常工作中不用手写二分法,但它的思想却很有用,例如用于排查 master 分支上有问题的 commit。 场景 通常来说,master 分支上的代码需要保证没有 bug,随时能够发布。但在实际的工作场景中,为每个 commit 做严格的 ab 测试、验证是很麻烦的事情。有时候,只改一行代码,改动非常小,直 …...

阅读全文

一次流量不均衡问题的排查记录

讲一个这周排查的访问流量不均的事儿。 下游同学反馈我们的服务调用流量不均,最高的实例有 1k+ QPS,最低的才 400+ QPS,相差太大。 于是拉了平台的 oncall,询问是否开了 mesh,没开。那就是框架的事了。 再拉框架的 oncall,询问是否自己加了流量均衡的策略,也没加。那就是用的默认的流量调度策略:“加权随机”。 什么是加权随机? 加权是指按节点权重进行流量分配,随机意味着相同 …...

阅读全文

Go map[int64]int64 写入 redis 占用多少内存

我们在系统设计面试或者在实际工作中,免不了要进行一些估算。之前的文章里讲过一些技巧,今天来个实战。 这是我最近在做的一个工作,将内存中的一个超大的 map[int64]int64 写入到 redis,map 里的元素个数是千万级的。设计方案的时候,需要对 redis 的容量做一个估算。 如果不了解 redis 的话,可能你的答案是用元素个数直接乘以 16B(key 和 value 各占 8B)。我 …...

阅读全文

介绍一个欧神写的剪贴板同步神器

经常会遇到这样的场景:手机上看到某位大佬发了一段醍醐灌顶的话,马上想记录到自己的笔记系统里去。但电脑上并没有登录微信,所以还得先登录电脑端微信,再自动同步消息,找到那段话,复制,记录…… 如果我们用的是苹果全家桶,情况稍好一点:iphone 上复制之后,在 mac 端直接粘贴就行了。但“接力”功能有时也会失灵,不太可靠。 而如果手机用的是 iphone,电脑用的是 win,那日子就会更难过一点。如 …...

阅读全文

写 Go 时如何优雅地查文档

某天写代码时发现自己对 IDE 的依赖非常深,如果没了 Goland 就不会写代码了,心里为之一惊。 Goland 的自动补全功能已经是必需品了,只要打出相关的几个字符,不管是变量名还是函数调用,都能帮你直接补全。我们只需要往相应的位置填东西就行了。 进而又想到,当补全功能缺失或者暂时失灵的情况下,该如何快速地查出某个函数的具体用法呢? 假设我们想要对字符串做 split,却忘了具体用法,下面是几 …...

阅读全文