Go作為近兩年迅速流行起來的編程語言始終致力于使事情簡單化。它并未引入很多新概念,而是聚焦于打造一門簡單的語言,讓開發(fā)者使用起來感覺異??焖偾液唵?。相信有意向深入學(xué)習(xí)Go語言的小伙伴都在研究Go的開源項(xiàng)目,今天我就把自己覺得不錯(cuò)的6個(gè)Go開源項(xiàng)目推薦給大家,希望大家能獲得收獲和成長。
嘉蔭網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
推薦一:kubernetes 【Star:44418】
Kubernetes基于Docker,其目的是讓用戶通過Kubernetes集群來進(jìn)行云端容器集群的管理,而無需用戶進(jìn)行復(fù)雜的設(shè)置工作。系統(tǒng)會自動選取合適的工作節(jié)點(diǎn)來執(zhí)行具體的容器集群調(diào)度處理工作。
推薦二:etcd 【Star:21408】
etcd是由CoreOS開發(fā)并維護(hù)鍵值存儲系統(tǒng),它使用Go語言編寫,并通過Raft一致性算法處理日志復(fù)制以保證強(qiáng)一致性。目前,Google的容器集群管理系統(tǒng)Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都廣泛使用了etcd。
推薦三:deis 【Star:6093】
Deis是一個(gè)基于Docker和CoreOS的開源PaaS平臺,旨在讓部屬和管理服務(wù)器上的應(yīng)用變得輕松容易。它可以運(yùn)行在AWS、GCE以及Openstack平臺下。
推薦四:flynn 【Star:6936】
Flynn是一個(gè)使用Go語言編寫的開源PaaS平臺,可自動構(gòu)建部署任何應(yīng)用到Docker容器集群上運(yùn)行。Flynn項(xiàng)目受到Y(jié) Combinator的支持,目前仍在開發(fā)中,被稱為是下一代的開源PaaS平臺。
推薦五:lime 【Star:13775】
相對上面的幾款Go語言在云端和服務(wù)器端之外,Lime則顯得比較特殊。Lime,則是一款用Go語言寫的桌面編輯器程序,被看做是著名編輯器Sublime Text的開源實(shí)現(xiàn)。
六:revel 【Star:10508】
Revel是一個(gè)高生產(chǎn)力的Go語言Web框架。Revel框架支持熱編譯,當(dāng)編輯、保存和刷新源碼時(shí),Revel會自動編譯代碼和模板;全棧特性,支持路由、參數(shù)解析、緩存、測試、國際化等功能。
近幾年誕生了很多微服務(wù)框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca。幾乎每種主流語言都有其對應(yīng)的微服務(wù)框架。
Go在微服務(wù)框架中有其獨(dú)特的優(yōu)勢,至于優(yōu)勢在哪,自行g(shù)oogle。
1、GoKit框架
這是一個(gè)工具包的集合,可以幫助攻城獅構(gòu)建強(qiáng)大、可靠和可維護(hù)的微服務(wù)。提供了用于實(shí)現(xiàn)系統(tǒng)監(jiān)控和彈性模式組件的庫,例如日志、跟蹤、限流、熔斷等。
基于這個(gè)框架的應(yīng)用程序架構(gòu)由三個(gè)主要的部分組成:
傳輸層:用于網(wǎng)絡(luò)通信,服務(wù)通常使用HTTP或者gRPC等網(wǎng)絡(luò)傳輸協(xié)議,或者使用NATS等發(fā)布訂閱系統(tǒng)相互通信。
接口層:是服務(wù)器和客戶端的基本構(gòu)建塊。每個(gè)對外提供的接口方法都會定義為一個(gè)Endpoint,一遍在服務(wù)器和客戶端之間進(jìn)行網(wǎng)絡(luò)通信,每個(gè)端點(diǎn)使用傳輸層通過HTTP或gRPC等具體通信模式對外提供服務(wù)
服務(wù)成:具體的業(yè)務(wù)邏輯實(shí)現(xiàn)
2、GoMicro框架
這是一個(gè)基于Go語言實(shí)現(xiàn)的插件化RPC微服務(wù)框架。提供了服務(wù)發(fā)現(xiàn)、負(fù)載均衡、同步傳輸、異步通信以及事件驅(qū)動等機(jī)制,嘗試簡化分布式系統(tǒng)之間的通信,讓開發(fā)者更專注于自身業(yè)務(wù)邏輯的開發(fā)。
GoMicro的設(shè)計(jì)哲學(xué)是可插拔的架構(gòu)理念,提供了可快速構(gòu)建系統(tǒng)的組件,并且可以根據(jù)自身的需求對GoMicro提供的默認(rèn)實(shí)現(xiàn)進(jìn)行定制。所有插件都可在倉庫github.com/micro/go-plugins 中找到。
可以先直接使用go自帶的http server 框架,這個(gè)框架涵蓋了絕大多數(shù)的功能,比如request response 的基本封裝,簡單的路由管理,文件上傳處理。
如果發(fā)現(xiàn)Go 自帶的框架解決不了問題,可以引入相應(yīng)的第三方組件,比如ORM可以采用中國人寫的gorm 比如web 的session 管理可以使用gorilla/session
當(dāng)然你也可以直接上大一統(tǒng)的框架比如你提到的beego 還有大名鼎鼎的martini 。不過不推薦,因?yàn)檫@樣的大框架和Go 語言本身的模塊設(shè)計(jì)有沖突。
實(shí)際開發(fā)建議用vscode 加Go 插件來做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強(qiáng)大的debug 功能。其他IDE debug 用起來非常麻煩比如idea 和liteIDE。題主也可以自己試下。
應(yīng)該是 Reids 或 Memcached 這些緩存服務(wù),在 Go 語言中的客戶端工具。
GitHub 上有個(gè) repo 叫 awesome-go(GitHub - avelino/awesome-go: A curated list of awesome Go frameworks, libraries and software),整理了常見的 Go 框架或代碼庫,其中就有 Redis 和 Memcached 的客戶端。