新聞中心
go語言的webengine叫什么
Java教程
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供渾南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為渾南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
Linux入門
更多
首頁
?
Go語言WEB框架(Gin)詳解
在 Go語言開發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強(qiáng)很多。
Gin 是 Go語言寫的一個 web 框架,它具有運(yùn)行速度快,分組的路由器,良好的崩潰捕獲和錯誤處理,非常好的支持中間件和 json??傊?Go語言開發(fā)領(lǐng)域是一款值得好好研究的 Web 框架,開源網(wǎng)址:
首先下載安裝 gin 包:
go get -u github.com/gin-gonic/gin
一個簡單的例子:
package main
import "github.com/gin-gonic/gin"
func main() {
//Default返回一個默認(rèn)的路由引擎
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
//輸出json結(jié)果給調(diào)用方
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
編譯運(yùn)行程序,打開瀏覽器,訪問頁面顯示:
{"message":"pong"}
gin 的功能不只是簡單輸出 Json 數(shù)據(jù)。它是一個輕量級的 WEB 框架,支持 RestFull 風(fēng)格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數(shù)處理等等功能,這些都和 WEB 緊密相關(guān),通過提供這些功能,使開發(fā)人員更方便地處理 WEB 業(yè)務(wù)。
Gin 實(shí)際應(yīng)用
接下來使用 Gin 作為框架來搭建一個擁有靜態(tài)資源站點(diǎn),動態(tài) WEB 站點(diǎn),以及 RESTFull API 接口站點(diǎn)(可專門作為手機(jī) APP 應(yīng)用提供服務(wù)使用)組成的,亦可根據(jù)情況分拆這套系統(tǒng),每種功能獨(dú)立出來單獨(dú)提供服務(wù)。
下面按照一套系統(tǒng)但采用分站點(diǎn)來說明,首先是整個系統(tǒng)的目錄結(jié)構(gòu),website 目錄下面 static 是資源類文件,為靜態(tài)資源站點(diǎn)專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動態(tài)站點(diǎn)的模板。
當(dāng)然這個目錄結(jié)構(gòu)是一種約定,可以根據(jù)情況來修改。整個項(xiàng)目已經(jīng)開源,可以訪問來詳細(xì)了解:具體每個站點(diǎn)的功能怎么實(shí)現(xiàn)呢?請看下面有關(guān)每個功能的講述:
靜態(tài)資源站點(diǎn)
一般網(wǎng)站開發(fā)中,我們會考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點(diǎn)部署在 CDN,提升響應(yīng)速度。采用 Gin 實(shí)現(xiàn)起來非常簡單,當(dāng)然也可以使用 net/http 包輕松實(shí)現(xiàn),但使用 Gin 會更方便。
不管怎么樣,使用 Go 開發(fā),我們可以不用花太多時間在 WEB 服務(wù)環(huán)境搭建上,程序啟動就直接可以提供 WEB 服務(wù)了。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 靜態(tài)資源加載,本例為css,js以及資源圖片
router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/ffhelicopter/tmm/website/static"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:80
router.Run(":80")
}
首先需要是生成一個 Engine,這是 gin 的核心,默認(rèn)帶有 Logger 和 Recovery 兩個中間件。
router := gin.Default()
StaticFile 是加載單個文件,而 StaticFS 是加載一個完整的目錄資源:
func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
這些目錄下資源是可以隨時更新,而不用重新啟動程序?,F(xiàn)在編譯運(yùn)行程序,靜態(tài)站點(diǎn)就可以正常訪問了。
go語言能做什么?
很多朋友可能知道Go語言的優(yōu)勢在哪,卻不知道Go語言適合用于哪些地方。
1、 Go語言作為服務(wù)器編程語言,很適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫代理等;網(wǎng)絡(luò)編程方面。Go語言廣泛應(yīng)用于Web應(yīng)用、API應(yīng)用、下載應(yīng)用等;除此之外,Go語言還可用于內(nèi)存數(shù)據(jù)庫和云平臺領(lǐng)域,目前國外很多云平臺都是采用Go開發(fā)。
2、 其實(shí)Go語言主要用作服務(wù)器端開發(fā)。其定位是用來開發(fā)"大型軟件"的,適合于很多程序員一起開發(fā)大型軟件,并且開發(fā)周期長,支持云計(jì)算的網(wǎng)絡(luò)服務(wù)。Go語言能夠讓程序員快速開發(fā),并且在軟件不斷的增長過程中,它能讓程序員更容易地進(jìn)行維護(hù)和修改。它融合了傳統(tǒng)編譯型語言的高效性和腳本語言的易用性和富于表達(dá)性。
3、 Go語言成功案例。Nsq:Nsq是由Go語言開發(fā)的高性能、高可用消息隊(duì)列系統(tǒng),性能非常高,每天能處理數(shù)十億條的消息;
4、 Docker:基于lxc的一個虛擬打包工具,能夠?qū)崿F(xiàn)PAAS平臺的組建。
5、 Packer:用來生成不同平臺的鏡像文件,例如VM、vbox、AWS等,作者是vagrant的作者
6、 Skynet:分布式調(diào)度框架。
7、 Doozer:分布式同步工具,類似ZooKeeper。
8、 Heka:mazila開源的日志處理系統(tǒng)。
9、 Cbfs:couchbase開源的分布式文件系統(tǒng)。
10、 Tsuru:開源的PAAS平臺,和SAE實(shí)現(xiàn)的功能一模一樣。
11、 Groupcache:memcahe作者寫的用于Google下載系統(tǒng)的緩存系統(tǒng)。
12、 God:類似redis的緩存系統(tǒng),但是支持分布式和擴(kuò)展性。
13、 Gor:網(wǎng)絡(luò)流量抓包和重放工具。
以上的就是關(guān)于go語言能做什么的內(nèi)容介紹了。
如何在win7環(huán)境下搭建Go開發(fā)環(huán)境
首先需要下載下載go平臺安裝包
安裝程序 下載地址址h如果是您的系統(tǒng)是windows32 位系統(tǒng)請選擇go1.3.3.windows-386.msi即可,其他的,請按照自己所需版本來進(jìn)行下載,如下圖所示:
安裝以及配置環(huán)境變量
由于Windows下的的安裝包有兩種:msi和zip的;zip的是免安裝的,解壓在配置一些環(huán)境變量之后就可以使用,msi的則是安裝包版本的,安裝的時候會設(shè)置好對應(yīng)的環(huán)境變量。我的電腦是Win7 64位,因?yàn)榉奖?,就下載了下面的版本。下好安裝包后,安裝過程就很簡單了,一路“Next”就好了。 雖然msi會自動配置一些環(huán)境變量,但是本人在安裝完之后還是自己配置了環(huán)境變量,所以在安裝完Go之后,我們最好還是檢查一些所有的環(huán)境變量是否正常。主要的環(huán)境變量有以下幾個:
GOROOT:Go的安裝目錄
GOPATH:用于存放Go語言Package的目錄,這個目錄不能在Go的安裝目錄中
GOBIN:Go二進(jìn)制文件存放目錄,寫成%GOROOT%\bin就好
GOOS:操作系統(tǒng)
GOARCH:指定系統(tǒng)環(huán)境,i386表示x86,amd64表示x64
PATH:需要將%GOBIN%加在PATH變量的最后,方便在命令行下運(yùn)行Go
如下圖所示:
像我自己安裝的,下載完成之后解壓到任意目錄(所有目錄均不能使用中文):D:\Go;
然后是go環(huán)境變量的配置:
GOARCH:386(go安裝版本)
GOBIN:D:\Go\bin(exe執(zhí)行文件路徑)
GOOS:windows(go運(yùn)行的系統(tǒng))
GOROOT:D:\Go(go的解壓路徑)
GOPATH:E:\go\data(go的工具包路徑,隨意指定,后面會用到)
然后在path環(huán)境變量中追加:;%GOBIN%
完成之后在cmd窗口輸入:go version,如下圖所示:
go語言有類似javaagent的工具嗎
沒有。
go語言開發(fā)工具有:Gogland、Eclipse、LiteIDE、KomodoIDE、Atom、Brackets、VisualStudioCode、Cloud9、CodeEnv、Wide等等。
golang語言并沒有提供類似javaagent的機(jī)制允許我們在程序運(yùn)行中修改代碼邏輯。
go語言有沒有類似tp5框架
有,go語言有框架,例如:Beego(Go語言下開源的,高性能Web框架 )、Buffalo(Go語言下快速Web開發(fā)框架)、Echo、Gin、Iris、Revel(高生產(chǎn)率,全棧Go語言的Web框架)等。
springBoot開發(fā)的開源堡壘機(jī)(跳板機(jī))軟件——WGCLOUD
WGCLOUD 是一個高性能的分布式監(jiān)控系統(tǒng),server基于springboot架構(gòu)開發(fā),agent采用go開發(fā),核心模塊包括:主機(jī)監(jiān)控,ES集群監(jiān)控,CPU監(jiān)控,CPU溫度監(jiān)控,大屏看板,docker監(jiān)控,網(wǎng)絡(luò)流量監(jiān)控,內(nèi)存監(jiān)控,業(yè)務(wù)數(shù)據(jù)監(jiān)控(mysql,oracle,pg等),服務(wù)心跳檢測,應(yīng)用進(jìn)程管理,磁盤IO監(jiān)控,端口監(jiān)控,日志文件監(jiān)控,系統(tǒng)負(fù)載監(jiān)控,監(jiān)控告警信息推送。
WGCLOUD還具有堡壘機(jī)(跳板機(jī))能力,非常好用。
名稱欄目:go語言開發(fā)堡壘機(jī) go語言開發(fā)服務(wù)器
鏈接URL:http://fisionsoft.com.cn/article/dodcsod.html