go-kit是一套幫助開發者構建健壯、可靠、可維護的微服務的golang工具包集合。最初應用於大型企業開發,可是很快也開始爲小型初創企業和組織服務。git
go-kit自上而下采用三層架構方式:Transport、Endpoint、Service。Transport層主要負責與傳輸協議HTTP、gRPC、Thrift等相關的邏輯;Endpoint層主要負責request/response格式的轉換,以及公用攔截器相關的邏輯;Service層則專一於業務邏輯。Endpoint層做爲go-kit的核心,採用相似洋蔥的模型,提供了對日誌、限流、熔斷、鏈路追蹤、服務監控等方面的擴展能力。爲了幫助開發者構建微服務,go-kit提供了對consul、etcd、zookeeper、eureka等註冊中心的支持。github
本人經過學習官方網站、github實例以及國內外的一些與go-kit相關的文章,對go-kit的使用方式進行了學習,並經過編寫實例、在社區分享文章進行了強化。但願與廣大go-kit的愛好者多多溝通,共同進步。golang
這篇文檔將對過去一段時間寫的文章與實例程序進行彙總,做爲一個目錄供你們交流。本系列文檔以算術運算服務爲基礎,逐步擴展與微服務有關的功能。微信
以上爲目前go-kit系列的文章,每篇文章都對應示例代碼,能夠經過github獲取源代碼。我會隨着實際的學習狀況,對該系列文章不斷完善。架構
因爲本人的水平有限,文章中確定存在描述不當或者錯誤的地方,但願你們批評指正。微服務
本文首發於本人微信公衆號【兮一昂吧】,歡迎掃碼關注!工具