GopherChina2017-5 Go的隱藏功能、微服務改造

Go的隱藏功能

//go: noescape
//go: noinline
//go: nosplit
//go: linkname
...

其它
// +build
//go: generate
package xxx // import "xxx"
//line


ezbuy:

東南亞跨境電商公司,從C#切換到Go,正在切換中
Go微服務治理實踐

開發(fā)環(huán)境構(gòu)建:Goflow

  • 開發(fā)環(huán)境統(tǒng)一化
  • 第三方依賴管理
  • 編譯流程統(tǒng)一,含非go的語言

強迫不同的項目使用同樣的第三方庫

使用了subtree,submodule是存的引用,subtree是在一個庫里(待確認),更新速度約為submodule的5倍


微服務選型:gRPC


通過拓展區(qū)分pb中的接口是內(nèi)部還是外部


除了接口,有時需要提供SDK


使用internal來隔離


遠程服務調(diào)用,做一些約定


服務發(fā)現(xiàn)


沒找到好辦法,規(guī)范服務調(diào)用的寫法

分布式跟蹤:調(diào)用棧、Context

  • sentry

  • 跨進程錯誤追蹤,不一定要通過日志收集實現(xiàn),比如使用Context


  • 在go沒有exception的情況下如何處理?利用context,包含一些額外信息

  • 死循環(huán),用Context + TTL處理

跨數(shù)據(jù)中心:Gateway - 解決方案
Gateway之間相互感知,最終一致性


ezbuy為啥要從.net轉(zhuǎn)go的“契機”以及對.net core的看法,知乎上的回答:
https://www.zhihu.com/question/32249717/answer/149679759

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容