GopherChina2017-5 Go的隐藏功能、微服务改造

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容