Go的隐藏功能
//go: noescape
//go: noinline
//go: nosplit
//go: linkname
...
其它
// +build
//go: generate
package xxx // import "xxx"
//line
ezbuy:
东南亚跨境电商公司,从C#切换到Go,正在切换中
Go微服务治理实践
开发环境构建:Goflow
- 开发环境统一化
- 第三方依赖管理
- 编译流程统一,含非go的语言
强迫不同的项目使用同样的第三方库
使用了subtree,submodule是存的引用,subtree是在一个库里(待确认),更新速度约为submodule的5倍
微服务选型:gRPC
通过拓展区分pb中的接口是内部还是外部
除了接口,有时需要提供SDK
使用internal来隔离
远程服务调用,做一些约定
服务发现
没找到好办法,规范服务调用的写法
分布式跟踪:调用栈、Context
sentry
-
跨进程错误追踪,不一定要通过日志收集实现,比如使用Context
在go没有exception的情况下如何处理?利用context,包含一些额外信息
死循环,用Context + TTL处理
跨数据中心:Gateway - 解决方案
Gateway之间相互感知,最终一致性
ezbuy为啥要从.net转go的“契机”以及对.net core的看法,知乎上的回答:
https://www.zhihu.com/question/32249717/answer/149679759