20 個有用的 Go 語言微服務開發框架吐血總結!!!

w1015357065發表於2020-01-08

點選這裡,檢視剩餘 10 個高效有用的 Go 語言微服務開發框架

Beego https://beego.me/

Beego 框架提供了很多標準附加功能,例如全功能路由器和可用於執行 CRUD 操作的物件到資料庫對映工具。Bee 是 Beego 愛好者的最愛,它是一個快速而強大的命令列工具,用於構建、更新、打包和部署應用程式。Bee 可以從模板生成原始碼,並保持資料庫的最新狀態。

Buffalo https://gobuffalo.io/en

Buffalo 團隊需要能夠將 Web 應用程式的所有部分組裝在一起的東西,包括應用程式本身的一些設計。他們把能夠安裝在一起的很多部件叫作 “生態系統”。如果你想要路由——很少有人不需要——Buffalo 就包含了 Gorilla/Mux。如果你需要模板,Buffalo 傾向於使用 Plush,而不是使用內建的 Go 語言模板機制。資料庫連線模組集合 Pop 可以幫你將資料庫資訊轉換為 Go 物件。你還可以找到連線資料庫、處理 cookie 以及完成其他任務的標準方法。

Cobra https://github.com/spf13/cobra

有時候,你只需要一個命令列介面。Cobra 提供了 CLI 的所有標準功能,因此你不必浪費時間實現程式碼來查詢 -h 或 -help 標誌。如果你的微服務需要對具有大量標誌和其他功能的命令列呼叫做出響應,那麼可以考慮整合 Cobra。

Docker你當然可以在辦公室伺服器小黑屋裡的裸機上執行微服務,但越來越多的人將他們的程式碼捆綁在 Docker 容器中,並將容器發到雲端。小型的包更容易處理大量不同的程式碼塊,當你對微服務架構的願景要求你建立很多小的獨立程式碼塊時,這將是一項有價值的服務。

值得一提的是,Docker 是用 Go 語言開發的,儘管在部署 Docker 容器時你可能永遠不會想到這一點。Docker 社群版是開源的,所以如果有必要,你可以參與其中,但很可能你只是將 Docker 作為部署微服務的工具。Go 語言愛好者之所以想要記住 Docker 是用 Go 語言開發的這一事實,是因為無處不在的 Docker 有力地證明了他們對這門語言的支援。

Echo https://echo.labstack.com/

Echo 是一個極簡框架,但它提供了很多最重要的元件。路由器可以將 URL 拆解,然後將拆解的各個部份轉換為引數,因此你無需自行解析它們。然後,你可以混合使用身份驗證、表單解析、壓縮和合理性限制。你可以專注於從函式中返回正確的資訊。

Errors https://github.com/juju/errors

有時候,API 的使用者會傳遞錯誤的引數。你可以自己處理這些引數,也可以把它們創給 Errors,這是一個可以自動執行大部分跟蹤的庫,方便進行除錯。當發生錯誤時,Errors 會使用註釋來詳細說明出錯的地方和位置。

Gin https://github.com/gin-gonic/gin

Gin 是 Martini( https://github.com/go-martini... )的下一代框架。可以說,Gin 拋棄了那些額外的東西,專注於提供最有用的部分。花費大量時間構建 Node.js 微服務的開發人員會感到賓至如歸。你可以例項化一個物件,然後附加函式來處理特定的呼叫,這樣就可以建立一個微服務。Gin 負責處理路由,而你的函式處理業務邏輯。如果不去考慮標點符號,它的程式碼甚至看起來有點像 Node.js 程式碼。

Ginkgo https://onsi.github.io/ginkgo/

測試可能是微服務開發當中最具挑戰性的事情。Ginkgo 通過行為驅動測試擴充套件了標準 Go 發行版的內建測試機制。Ginkgo 提供了一種高階機制,用於指定函式或服務應該產生哪些結果。結果通常使用 Ginkgo 提供的 Gomega 匹配器( http://onsi.github.io/gomega/ )進行評估,但如果你願意,也可以使用不同的匹配器庫。

Ginkgo 是一個全面的框架,提供了各種選項,用於設定測試資料、執行測試以及在事後釋放測試資料。你只需要描述結果,然後讓 Ginkgo 處理其他的事情。

Goa https://github.com/goadesign/goa

如果你是一個曾經使用 Ruby 和 Praxis 框架的開發人員,或者是一個欣賞設計語言的強大力量人,那麼你會在 Goa 中找到很多你喜歡的東西。你本身不需要編寫 Go 程式碼。你使用 Goa DSL 為 API 編寫設計規範,然後 Goa 將其轉換為可執行的 Go 程式碼。DSL 針對微服務 API 進行了優化,並強制你的設計遵循標準的架構。

Gorilla http://www.gorillatoolkit.org/

Gorilla 專案提供了一系列你需要的模組。Gorilla 的 Mux( http://www.gorillatoolkit.org... )路由器被很多其他框架使用,因為它太好用了。很多使用者之所以使用 Gorilla,是因為 websocket( http://www.gorillatoolkit.org... )。

Gotify https://github.com/gotify/server

同步一組微服務所面臨的一個挑戰是建立有效的訊息傳遞節點。Gotify 是一個簡單的伺服器,用於傳送和接收訊息,將你的微服務集合與持續儲存的訊息組合在一起。最有用的部分可能是它的 Web 介面,可幫助開發者應對最令人頭疼的除錯問題。

關鍵字:開發 框架 前端開發 Go API 微服務

更多原創文章乾貨分享,請關注公眾號
  • 20 個有用的 Go 語言微服務開發框架吐血總結!!!
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章