最近翻看了一些 Google 的老文章/论文,发现 Google 有不少系统的设计文上都写着 planet
scale,行星级,口气那是真的大。仔细想想,FAANG 这样能把生意做到全球的互联网公司,除了这五家,也没几家其它的了,人家确实有吹行星级的资本。着实羡慕。
Google 的员工出来创业,公司名也是 TailScale(似乎是做 vpn 的),PlanetScale(这家似乎是拿着 vitess 出来创业的)
这样,说明 ex-googler 也是比较喜欢这家公司的文化的。
截止 2021 年,《Go 语言高级编程》在国内已售出超过 1.6w 册,从技术图书的角度来讲,这本书已经算是成功了,这离不开各位读者的支持,感谢大家~
2016 年的时候,golang-china 的柴树杉找到我,想要一起写一本书,那时候 Go 在国内已经有了一些起色,Gopher
的活动越来越多了,比如后来每年都在办的 GopherChina,和线下很多 Go 语言的 meetup。
国内不少大公司的业务部门还在犹豫要不要把主语言切换到 Go。
我还在某公司写 PHP,
在 这篇总结 [http://xargin.com/microservices-patterns/] 的结尾,提到了 GraphQL 的问题。
之前在某公司落地查询 API 方案时,我们没有选择 GraphQL,是因为:
* GraphQL 对于数据用户来说有一定的学习成本
* GraphQL 的稳定性很难做,难以限流
学习成本倒也不是特别大的问题,程序员们本能上还是喜欢接触新东西的,这会让他们有一种虚假的获得感。
关键是这个限流问题,是真的很难做,开放 GraphQL 的 API,就像你在 MySQL 上直接开了一个
经常翻阅微服务材料的话,总会碰到 microservices.io 这个网站,总结了微服务方方面面的设计模式。网站的作者是 Chris Richardson。
这些相关的经验在 2018 年成为了《Microservices Patterns》这本书,并且 2019
年引进国内。当时我第一时间购入了这本书,不过那时候很懒,所以没看完。最近在准备分享内容的时候又翻到了这本书,这次完整地读完了一遍。感觉应该是目前微服务领域最好的一本书了。另一本《Building
Microservices》也不错,不过内容还是稍微单薄了一些。
这本书为我们提供了宏观上俯瞰微服务整个生态的大图,比如:
当然,18
抢占抢占 # 从 Go 1.14 开始,通过使用信号,Go 语言实现了调度和 GC 过程中的真“抢占“。抢占流程由抢占的发起方向被抢占线程发送 SIGURG
信号。当被抢占线程收到信号后,进入 SIGURG 的处理流程,将 asyncPreempt
的调用强制插入到用户当前执行的代码位置。本节会对该过程进行详尽分析。抢占发起的时机 # 抢占会在下列时机发生: STW 期间 在 P 上执行 safe
point 函数期间