由于 golang 提供了完善的net/http標(biāo)準(zhǔn)庫,基于該標(biāo)準(zhǔn)庫實現(xiàn)一個web框架的難度相比其他語言低了不少,所以go web框架簡直就是百花齊放。從老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且還有一些類似于 chi 這種router。個人一般小項目,尤其是中間件需要暴露一些http接口的,基本就使用chi即可。
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元湞江做網(wǎng)站,已為上家服務(wù),為湞江各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
本次測試主要是gin iris echo 這三個框架。側(cè)重在于高性能,從并發(fā)和json序列化和反序列化兩個方面來測評,畢竟后臺項目側(cè)重的也就是這兩個方面。
為了選擇符合重IO的框架,現(xiàn)設(shè)定如下場景的demo,demo的具體要求如下:
gin:
iris:
echo:
由于要測試5種body樣本,4種場景,4個框架,因此把重點(diǎn)數(shù)據(jù)篩選出來(吞吐量、錯誤率和99%Line,重要性依次遞減),結(jié)果都繪制了圖形,方便比對查看。
綜合以上各個測試結(jié)果可以看出,gin以及iris都是非常優(yōu)秀的框架,gin的優(yōu)勢比其他稍微大點(diǎn),iris次之,而echo相應(yīng)差一點(diǎn)。
本次測試只是簡單測試了一下3個框架的并發(fā)和json相關(guān)。對比結(jié)果,不包括生態(tài)和工具的完善度等等。如果測試有什么不完善的地方,歡迎交流。
另外歡迎大家試用和star另外一個web框架 baa ,為了避嫌我沒有貼出baa的數(shù)據(jù),性能測試處于gin之后和iris之間。
mina與netty都是Trustin Lee的作品,所以在很多方面都十分相似,他們線程模型也是基本一致,采用了Reactors in threads模型,即Main Reactor + Sub Reactors的模式。由main reactor處理連接相關(guān)的任務(wù):accept、connect等,當(dāng)連接處理完畢并建立
你要的應(yīng)該是 Reids 或 Memcached 這些緩存服務(wù),在 Go 語言中的客戶端工具。
GitHub 上有個 repo 叫 awesome-go(GitHub - avelino/awesome-go: A curated list of awesome Go frameworks, libraries and software),整理了常見的 Go 框架或代碼庫,其中就有 Redis 和 Memcached 的客戶端。
有,go語言有框架,例如:Beego(Go語言下開源的,高性能Web框架 )、Buffalo(Go語言下快速Web開發(fā)框架)、Echo、Gin、Iris、Revel(高生產(chǎn)率,全棧Go語言的Web框架)等。