- 博客(5)
- 收藏
- 关注
原创 线上502问题居然是它导致的!
记一次线上502问题排查过程。现象article-go微服务有请求502,之前稀稀拉拉有少量的502(有同学排查过,未果),但是运维同学最近升级了ingress,502变多了。信息收集大量的TW登录article-go容器,使用lsof -p 1查看进程的fd信息,发现大量的TIME_WAIT。查询了下目标地址,都是ingress pod的地址。首先TIME_WAIT就非常可疑,先看下TCP的四次挥手过程:发现只有客户端的连接状态才可能是TIME_WAIT,我们article_go明明
2021-10-12 17:06:55 681
原创 翻车了,记一次线上事故
关键词:golang、go、gorm、零值、有担当的富人翻车日期:2021.03.04翻车现场今天下午3:30有同事反馈,app冷启动出现了测试公告弹窗。画外音:半小时前刚更新一个服务,赶紧检查下配置吧。事件回述10:27:代码发布sandbox环境10:27~11:30:测试配置导入(因为配置比较多)生产环境,并手动修改少量差异配置11:30~11:50:sandbox环境验收完成11:51: api开始灰度12:46: 灰度结束,api全量发布15:00: 优化配置解析,重
2021-03-04 20:59:56 292 1
原创 Go语言:原来不同平台的emoji表情是这样实现的
什么是emojiemoji就是一些意形符号。emoji的实现首先,你必须能够区分unicode、utf8和字符之间的区别:unicode,字符集,就是一个表格,记录这字符和码点(通常表示为U+0031)之间的关系utf8,是unicode的编码方案之一(还有utf16、utf32等)字符,是人类可以阅读的符号。emoji就是一批比较特殊的符号(可以理解为图片或者像素点集合)因为是一种实现,所以不同平台实现的各不一样。以ok表情为例,各平台的实现如下:emoji分类Basic_Emo
2021-03-02 22:34:38 4332 2
原创 图解unicode、utf8和utf8mb4
字符集和字符编码字符集(CCS: Coded Character Set):就是一个表格,表示每个字符对应数字(通常用16进制表示),比如unicode字符集中,数字1对应的就是U+00031,字母a对应的就是U+00061。字符编码(CEF:Character Encoding Form):因为计算机只认识0和1,所以计算机在存储字母a(U+00031)的时候,不能直接存储。所以就需要编码将字母a转换成01表示形式。对于unicode字符,utf8就是它的编码方案(如何utf8转换成01表示下.
2021-02-26 18:01:38 186466 1
原创 深入浅出go反射
写在前面Go的反射机制带来很多动态特性,一定程度上弥补了Go缺少自定义范型而导致的不便利。Go反射机制设计的目标之一是任何操作(非反射)都可以通过反射机制来完成。变量是由两部分组成:变量的类型和变量的值。类型和值reflect.Type和reflect.Value是反射的两大基本要素,他们的关系如下:任意类型都可以转换成Type和ValueValue可以转换成TypeValue可以转换成InterfaceType类型系统Type描述的是变量的类型,关于类型请参考下面这个文章:G
2021-02-26 11:09:41 12833 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人