Kratos(Go微服務框架)

文章頻道 軟件下載 安卓下載 蘋果下載

當前位置:首頁軟件下載編程開發 → Kratos(Go微服務框架) v2.0.0beta4官方版
Kratos(Go微服務框架)

Kratos(Go微服務框架)v2.0.0beta4官方版

Kratos(Go微服務框架)最新版下載評分:4.4
下載地址
  • 軟件大小:354K
  • 軟件語言:簡體中文
  • 更新時間:2021-05-18
  • 軟件類別:免費
  • 軟件性質:PC軟件
  • 軟件廠商:未知
  • 運行環境:WinXP/Win7/Win10
  • 軟件等級:
  • 官方網址:暫無
  • 軟件介紹
  • 軟件截圖
  • 猜你喜歡
  • 同類推薦
  • 相關文章

Kratos是一套輕量級Go微服務框架,包含大量微服務相關框架及工具,解決了gin在微服務場景下的一些適配和微服務本身的一係列生態!

【軟件介紹】

Kratos是一款功能強大的輕量級GO微服務框架,為用戶提供了海量的微服務相關框架和工具,為微服務的開發構建工作提供了幫助。軟件能夠輕鬆解決gin在微服務場景下的一些適配和微服務本身的一係列生態,滿足用戶的各種微服務框架功能需求。

【軟件教程】

  依賴注入

  Wire 是一個靈活的依賴注入工具,通過自動生成代碼的方式在編譯期完成依賴注入。

  在各個組件之間的依賴關係中,通常鼓勵顯式初始化,而不是全局變量傳遞。

  所以通過 Wire 進行初始化代碼,可以很好地解決組件之間的耦合,以及提高代碼維護性。

  安裝工具#

  go get github.com/google/wire/cmd/wireCopy

  工作原理#

  Wire 具有兩個基本概念:Provider 和 Injector。

  Provider 是一個普通的 Go Func ,這個方法也可以接收其它 Provider 的返回值,從而形成了依賴注入;

  使用方式#

  在 Kratos 中,主要分為 server、service、biz、data 服務模塊,會通過 Wire 進行模塊順序的初始化;

  在每個模塊中,隻需要一個 ProviderSet 提供者集合,就可以在 wire 中進行依賴注入;

  並且我們在每個組件提供入口即可,不需要其它依賴,例如:

  然後通過 wire.go 中定義所有 ProviderSet 可以完成依賴注入配置。

  初始化組件#

  通過 wire 初始化組件,需要定義對應的 wire.go,以及 kratos application 用於啟動管理。

  在項目的 main 目錄中,運行 go generate 進行生成編譯期依賴注入代碼:

  go generate ./...

  Errors

  APIs 錯誤碼可以統一通過 proto 定義業務原因,然後通過 protoc-gen-go-errors 生成判定代碼。

  在errors包中,錯誤信息通過 proto 定義,並且實現對應的 Error 接口,並且可以直接通過 middleware 轉換成 gRPC 錯誤碼。

  安裝工具#

  go get github.com/go-kratos/kratos/cmd/protoc-gen-go-errors@latestCopy

  錯誤定義#

  api/helloworld/errors/helloworld.proto

  錯誤生成#

  通過 proto 生成對應的代碼:

  kratos proto client api/helloworld/errors/helloworld.protoCopy

  生成的源碼,可以直接通過 errors.IsMissingName(err) 進行對應的錯誤判定:

  使用方式#

  Config

  使用方式#

  配置源可以指定多個,並且 config 會進行合並成 map[string]interface{},然後通過 Scan 或者 Value 獲取值內容;

  Logging

  接口實現#

  為了方便業務自適配不同的 log 接入使用,Logger 隻包含了最簡單的 Print 接口。當業務需要在 Kratos 框架內部使用自定義的 logging middlerware 的時候,隻需要簡單實現 Print 方法即可

  使用方式#

  輸出日誌到stdout#

  使用自帶的 StdLogger 可以創建標準輸出日誌對象. 通過 NewHelper 構造日誌模塊,Helper 生成的日誌模塊可以提供不同等級的日誌輸出。

  輸出日誌到fluentd#

  引入 fluent sdk

  在kratos中引入logging middleware#

  在 http.ServerOption 中引入 logging.Server(), 則 Kratos 會在每次收到 HTTP 請求的時候打印詳細請求信息

【功能介紹】

  APIs:協議通信以 HTTP/gRPC 為基礎,通過 Protobuf 進行定義;

  Errors:通過 Protobuf 的 Enum 作為錯誤碼定義,以及工具生成判定接口;

  Metadata:在協議通信 HTTP/gRPC 中,通過 Middleware 規範化服務元信息傳遞;

  Config:支持多數據源方式,進行配置合並鋪平,通過 Atomic 方式支持動態配置;

  Logger:標準日誌接口,可方便集成三方 log 庫,並可通過 fluentd 收集日誌;

  Metrics:統一指標接口,可以實現各種指標係統,默認集成 Prometheus;

  Tracing:遵循 OpenTelemetry 規範定義,以實現微服務鏈路追蹤;

  Encoding:支持 Accept 和 Content-Type 進行自動選擇內容編碼;

  Transport:通用的 HTTP/gRPC 傳輸層,實現統一的 Middleware 插件支持;

  Registry:實現統一注冊中心接口,可插件化對接各種注冊中心;

【軟件特色】

  簡單:不過度設計,代碼平實簡單;

  通用:通用業務開發所需要的基礎庫的功能;

  高效:提高業務迭代的效率;

  穩定:基礎庫可測試性高,覆蓋率高,有線上實踐安全可靠;

  健壯:通過良好的基礎庫設計,減少錯用;

  高性能:性能高,但不特定為了性能做 hack 優化,引入 unsafe ;

  擴展性:良好的接口設計,來擴展實現,或者通過新增基礎庫目錄來擴展功能;

  容錯性:為失敗設計,大量引入對 SRE 的理解,魯棒性高;

  工具鏈:包含大量工具鏈,比如 cache 代碼生成,lint 工具等等;

展開內容

軟件截圖

  • Kratos(Go微服務框架)v2.0.0beta4官方版

下載地址

  • PC版

同類推薦

相關文章

感謝速聯科技、八度網絡、九九數據、億恩科技、群英網絡讚助部分帶寬!

關於本站 | 聯係方式 | 版權聲明 | 下載幫助(?) | 網站地圖

Copyright 2002-2020 95262.com 【數碼資源網】 版權所有 粵ICP備2020128507號-1

本站所有軟件來自互聯網,版權歸原著所有。如有侵權,敬請來信告知 ,我們將及時撤銷。