聊聊时钟源为什么会影响性能

前几天帮同事看问题时,意外的发现了时钟源影响性能的 case, 比较典型,记录一下。网上也有人遇到过,参考虾皮的[Go] Time.Now函数CPU使用率异常Two frequently used system calls are ~77% slower on AWS EC2

Mehr lesen

聊聊为什么 IDL 只能扩展字段而非修改

前几年业界流行使用 thrift, 比如滴滴。这几年 grpc 越来越流行,很多开源框架也集成了,我司大部分服务都同时开放 grpc 和 http 接口

Mehr lesen

什么是 Pause 容器

都知道 k8s 的调度最小单位是 POD, 并且每个 POD 都有一个所谓的 Infra 容器 Pause, 那么到底什么是 Pause 容器呢?长什么样?有什么做用?

分析源码

废话不多,直接上源码,来自官方 pause.c

Mehr lesen

弱智的 MySQL NULL

MySQL 字段一定要 NOT NULL, 并且设置合理的 default 值!!!

MySQL 字段一定要 NOT NULL, 并且设置合理的 default 值!!!

MySQL 字段一定要 NOT NULL, 并且设置合理的 default 值!!!

Mehr lesen

分享一个 UT failed 引出的思考

我司使用 mono repo, 某个服务 ut 失败,导致别人无法构建。查看下源代码以及 ut case, 发现槽点蛮多,讲一下如何修复,展开聊一下写单测要注意的一些点,和设计模式中的概念依赖反转、依赖注入、控制反转

Mehr lesen

聊聊如何做技术分享

最近在组织公司内部的技术分享,简单的聊聊如何写 tech slide, 以及现场 present 时要注意的地方,希望对大家能有帮助。当然个人理解,难免有错误,欢迎讨论。

分享的目的

要纯粹,不能有任何功利,初心错了,做任何事情都会变形。

Mehr lesen

聊聊 Go 并发安全

并发安全是最基本的常识,也是最容易忽视的前提,更考验一个工程师 enginner 的语言基本功和代码规范。

并发访问修改变量,会导致各种不可预期的结果,最严重的就是程序 panic, 比如常见的 go 语言中 map concurrent read/write panic

Mehr lesen

Rust trait 入门

学 Rust 的一定离不开 trait, 告诉编译器某些类型拥有的,且能够被其他类型共享的功能,官方的定义叫做 Defining Shared Behavior 共享行为,同时还可以对泛型参数进行约束,将其指定为某些特定行为的类型。读过 你真的了解泛型嘛 朋友肯定知道,rust 的 trait 和 go interface 非常像,但是远比后者强大

Mehr lesen

实践出真知,聊聊 HTTP 鉴权那些事

上半年参与的项目涉及到 gateway 和 id 权限认证系统,通过系统性的学习与接触,了解很多 HTTP 鉴权的那些事。分享实践的细节,都是通用做法,符合标准协义,不涉及公司机密

本文主要讲如何给第三方服务,即 API 做鉴权,而不是用户登录系统。一般做后端微服务的很少接触这方面的概念,网关层或是入口做好认证后,链路下游都是默认开放的,最多用 iptables 或 aws securit group 类似的做网络可达的限制。用户信息传到 Context 中即可

Mehr lesen

剖析智能指针 Rc Weak 与 Arc

我们知道 rust ownership 有三原则:

  • 每个值 value, 都有一个所有者 owner

Mehr lesen