Go-kit介紹及構建微服務


Go-kit簡介

  Go-kit 並不是一個微服務框架,而是一套微服務工具集,我們可以用工具Go-kit為 Go 創建微服務,包含包和接口,有點類似於JAVA Spring Boot,但是沒那么強大。可以利用Go-kit提供的API和規范可以創建健壯的,可維護性高的微服務體系,它提供了用於實現系統監控和彈性模式組件的庫,例如日志記錄、跟蹤、限流和熔斷等,這些庫可以協助開發人員提高微服務架構的性能和穩定性。

  Go-kit官網地址: https://gokit.io/

  Go-kit 當前集成的組件

功能 組件
circuit breaker斷路器 hystrix-go gobreaker handy breaker
Metrics 指標 prometheus, dogstatsd, influx,graphite 等多個平台
服務發現 consul, dnssrv, etcd, eureka, lb, zookeeper
Request Tracing Opentracing, LightStep, AppDash, Zipkin

Go-Kit與Go-Micro對比

  Go-Kit 是一個微服務的標准庫。它可以提供獨立的包,通過這些包,開發者可以用來組建自己的應用程序。微服務架構意味着構建分布式系統,這帶來了許多挑戰,Go-Kit 可以為多數業務場景下實施微服務軟件架構提供指導和解決方案。

  Go-Micro 是一個面向微服務的可插拔 RPC 框架,可以快速啟動微服務的開發。Go-Micro 框架提供了許多功能,無須重新“造輪子”,所以開發者可以花更多的時間在需要關注的業務邏輯上。但是 Go-Micro 在快速啟動微服務開發的同時,也犧牲了靈活性,並且將 gRPC 強制為默認通信類型,更換組件不如 Go-Kit 簡便。
 
Go-Kit安裝
go get github.com/go-kit/kit

 

 Go-Kit三層架構

 

          Go Kit 框架分層示意圖

  基於Go-Kit 的應用程序架構由三個主要部分組成:傳輸層、接口層和服務層。

   1.傳輸層Transport): 用於網絡通信,服務通常使用 HTTP 或 gRPC 等網絡傳輸方式,或使用 NATS 等發布訂閱系統相互通信。除此之外,Go-Kit 還支持使用 AMQP 和 Thrift 等多種網絡通信模式。。

   2.接口層(EndPoint): 定義Request、Response格式,並可以使用裝飾器(閉包)包裝函數,以此來實現各個中間件嵌,比如在請求響應的時候添加日志等。 在Go-Kit中,服務中的每個對外提供的接口方法都會被定義為一個端點,以便在服務器和客戶端之間進行網絡通信。每個端點通過使用 HTTP 或 gRPC 等具體通信模式對外提供服務。

   3.服務層(Service): 這里就是我們具體的業務邏輯實現,包括核心業務邏輯、接口等相關信息存放,。它不會也不應該進行 HTTP 或 gRPC 等具體網絡傳輸,或者請求和響應消息類型的編碼和解碼。。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM