婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang-gin-mgo高并發服務器搭建教程

golang-gin-mgo高并發服務器搭建教程

熱門標簽:地圖區域圖標注后導出 江蘇呼叫中心外呼系統有效果嗎 赤峰電銷 利用地圖標注位置 貴州電話智能外呼系統 官渡電銷外呼管理系統怎么收費 谷歌美發店地圖標注 400開頭電話怎樣申請 杭州人工智能電銷機器人費用

gin-mgo服務器搭建

該服務器實現簡單接收請求并將請求參數封裝存儲在mongodb數據庫中,本文將講述gin-mgo的使用方法。

項目完整代碼地址: https://github.com/wayne-yhp/golang-gin-mgo

gin web框架使用介紹

首先獲取gin框架依賴

go get gopkg.in/gin-gonic/gin.v1

func main() {
  server = gin.Default()
  app.server.GET("/do", IndexRouter)//創造一個GET請求的路由地址,并指定處理函數為IndexRouter函數
  app.server.Run(":8080")
}
func IndexRouter(c *gin.Context) {
  if c.Request.Form == nil {   //獲取所有請求參數名和值的預處理
    c.Request.ParseMultipartForm(32  20)
  }
  params = c.Request.Form   //獲取所有參數列表
  fmt.Println(params)     //打印輸出參數
  c.String(http.StatusOK,"hello gin")//返回給頁面hello gin字符串
  //c.HTML(http.StatusOK, "index.html", nil)   //頁面跳轉
}

mgo 持久層框架使用介紹

前提條件mongodb環境已經搭建好了,首先安裝mgo框架依賴

go get labix.org/v2/mgo

type User struct{
  username string
  pwd string
}
func main() {
  mgo_session, err = mgo.Dial("127.0.0.1") //獲取連接對象session
  if err != nil {
    panic(err)
  }
  defer session.Close()    //方法執行完后關閉連接
  mgo_db = oper.mgo_session.DB("test")  //獲取數據庫對象,數據庫名為test
  //如果沒有mongodb沒有開啟權限認證,則跳過這一步
  mgo_db.Login("test1", "test1")  //用戶認證,用戶名賬戶和密碼都是test1
  mgo_c = oper.mgo_db.C("coll")  //獲取數據庫某個集合對象
  //插入操作
  mgo_c.insert(User{
    username: "xxx",
    pwd: "xxx",
  })
}

提高服務器高并發性能講解(針對文章開頭地址中的項目)

該項目主要實現接收請求,解析封裝參數,插入數據庫的簡單操作,這里只涉及插入操作,故不涉及數據緩存的知識,整個服務處于單機下,故不涉及分布式服務架構,集群的知識。

注意以下

1、開啟一個協程獨自監聽訪問數量,進行插入操作

2、實現批量插入

3、實現定時插入

4、加鎖解決并發資源競爭

開啟一個協程獨自監聽訪問數量,進行插入操作

如果將插入操作放在主線程,那么接收http請求和邏輯處理,數據庫插入操作都必須要順序執行,大大降低了插入效率,因此要開啟一個協程,獨自監聽訪問數量,進行數據庫插入。

實現批量插入

假想一下如果每次有人訪問你的數據庫你就進行一次插入操作,那么你的數據庫將會是一個什么樣的情況?我們都知道數據庫操作相對服務器其他操作是一件相對很耗時的事情,所以每次訪問就操作一次數據庫,會大大降低服務器性能,更別說有幾千上萬的人同時訪問你的服務器了。

實現定時插入

在實現了批量插入的基礎上,如果沒有達到一定的訪問量,那么就不會執行插入操作,剛好在兩個訪問請求中間隔了很長時間,那么前面的請求就會等待很久才會更新到數據庫中,為了防止這種情況,我們必須要設定一個時間,定時插入。

加鎖解決并發資源競爭

在并發量幾千上萬的情況下,可能一秒可以執行很多次數據庫的插入操作,這個時候很有可能上一個插入還沒執行完,第二個就已經執行了,這時候可能出現數據冗余,服務器癱瘓等問題,因此要給批量插入操作加上一個讀寫鎖。

具體實現細節可以去上述地址中查看。

補充:Golang號稱高并發,但高并發時性能不高

1.管道chan吞吐極限10,000,000,單次Put,Get耗時大約100ns/op,無論是采用單Go程,還是多Go程并發(并發數:100, 10000, 100000),耗時均沒有變化,Go內核這對chan進行優化。

解決之道:

在系統設計時,避免使用管道chan傳遞主業務數據,避免將業務流程處理流程分割到對個Go程中執行,這樣做減少chan傳輸耗時,和Go程調度耗時,性能會有很大的提升。

案例分析:nsq和nats都是實時消息隊列,nsq在客戶端端和服務端大量使用chan轉發消息,導致性能不佳,只有100,000/s;而nats服務端在分發消息流程中,沒有使用chan,只在客戶端接收時使用chan,性能可達到1,000,000/s。

2.互斥鎖Mutex在單Go程時Lock,Unlock耗時大約20ns/op,但是采用多Go程時,性能急劇下降,并發越大耗時越長,在Go1.5并發數達到1024耗時900ns/op,Go1.6優化到300ns/op,究其原因,是構建在CPU的原子操作之上,搶占過于頻繁將導致,消耗大量CPU時鐘,進而CPU多核無法并行。

解決之道:

采用分區,將需要互斥保護的數據,分成多個固定分區(建議是2的整數倍,如256),訪問時先定位分區(不互斥),這樣就可降低多個Go程競爭1個數據分區的概率。

案例分析:Golang的Go程調度模塊,在管理大量的Go程,使用的就是數據分區。

3.select異步操作在單管道時耗時120ns/op,但是隨著管道數增加,性能線性下降,每增加1個管道增加100ns/op,究其原因,slelect時當chan數超過1后,Go內部是創建一個Go程,有它每1ms輪訓的方式檢查每個chan是否可用,而不是采用事件觸發。

解決之道:

在select中避免使用過多的管道chan分支,或者把無法用到的chan置為nil;解決select超時,避免使用單獨的超時管道,應與數據返回管道共享。

案例分析:nsq和nats都是實時消息隊列,由于nsq大量使用chan,這就必然導致大量使用select對多chan操作,結果是性能不高。

4.Go調度性能低下,當出現1,000,000Go程時,Go的調度器的性能急劇下降。

解決之道:

避免動態創建Go程,服務端收到數據并處理的流程中,避免使用chan傳遞業務數據,這樣會引起Go程調度。

案例分析:nsq和nats都是實時消息隊列,由于nsq大量使用chan,這就必然導致在服務過程中,引起Go調度,結果是性能不高。

5.defer性能不高,每次defer耗時100ns,,在一個func內連續出現多次,性能消耗是100ns*n,累計出來浪費的cpu資源很大的。

解決之道:

除了需要異常捕獲時,必須使用defer;其它資源回收類defer,可以判斷失敗后,使用goto跳轉到資源回收的代碼區。

6.內存管理器性能低下,申請16字節的內存,單次消耗30ns,64字節單次消耗70ns,隨著申請內存尺寸的增長,耗時會迅速增長。加上GC的性能在1.4, 1.5是都不高,直到1.6, 1.7才得到改善。

解決之道:

建議使用pool,單次Put,Get的耗時大約在28ns,在并發情況下可達到18ns,比起每次創建,會節省很多的CPU時鐘。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang DNS服務器的簡單實現操作
  • golang HTTP 服務器 處理 日志/Stream流的操作
  • golang項目如何上線部署到Linu服務器(方法詳解)
  • golang文件服務器的兩種方式(可以訪問任何目錄)
  • golang搭建靜態web服務器的實現方法
  • 詳解如何熱重啟golang服務器
  • 淺談Golang中創建一個簡單的服務器的方法
  • 基于 HLS 創建 Golang 視頻流服務器的優缺點

標簽:黔西 武漢 河池 泰安 保定 鷹潭 松原 宜春

巨人網絡通訊聲明:本文標題《golang-gin-mgo高并發服務器搭建教程》,本文關鍵詞  golang-gin-mgo,高并發,高,并發,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang-gin-mgo高并發服務器搭建教程》相關的同類信息!
  • 本頁收集關于golang-gin-mgo高并發服務器搭建教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91精品国产麻豆| 亚洲国产aⅴ成人精品无吗| 成人一区二区在线观看| 91精品国产综合久久精品性色| 色欧美日韩亚洲| 亚洲五月六月丁香激情| 欧美一区二区福利在线| 成人av小说网| 婷婷六月综合网| 久久网站最新地址| 91一区一区三区| 久久精品国产一区二区| 国产精品高清亚洲| 91麻豆精品国产91久久久久久久久 | 日韩国产精品久久久| 久久久精品免费免费| 欧美日韩亚洲综合一区二区三区| 美日韩一区二区| 黄页网站大全一区二区| 国产亚洲精品精华液| 日韩精品一区二区三区在线观看| 国产精品久久精品日日| 日韩精品成人一区二区在线| 欧美大片拔萝卜| 亚洲国产精品人人做人人爽| 精品国偷自产国产一区| 成人av在线播放网站| 国产在线不卡一卡二卡三卡四卡| 亚洲精品亚洲人成人网| 欧美精品一区二区久久婷婷| 欧美性受极品xxxx喷水| 国产一区二区看久久| 另类小说色综合网站| 亚洲观看高清完整版在线观看 | 丁香天五香天堂综合| 青青草国产精品97视觉盛宴| 一区二区三国产精华液| 亚洲日本一区二区| 亚洲老司机在线| 亚洲成在人线在线播放| 一区二区三区在线观看网站| 亚洲色图欧美激情| 亚洲一区成人在线| 日本91福利区| 韩国毛片一区二区三区| 国产精品一区2区| a美女胸又www黄视频久久| 99久久精品一区| 欧美肥妇bbw| 欧美成人精精品一区二区频| 国产亚洲人成网站| 中文字幕中文字幕在线一区| 一区二区成人在线| 黄色资源网久久资源365| 99久久精品免费看| 欧美日韩一级大片网址| 日韩丝袜情趣美女图片| 久久综合九色综合久久久精品综合 | 日本高清不卡视频| 欧美一区二区三区在线观看| 亚洲欧美色图小说| 久久精品99国产精品日本| 99re这里都是精品| 欧美一区二区黄| 亚洲一区二区视频| 粉嫩嫩av羞羞动漫久久久| 正在播放亚洲一区| 亚洲小说欧美激情另类| 国内成人自拍视频| 精品国产一区二区国模嫣然| 亚洲免费观看高清在线观看| 成人听书哪个软件好| 日韩欧美电影在线| 久久99精品久久久久| 欧美一级艳片视频免费观看| 一区二区成人在线| 欧美伊人久久久久久久久影院| 国产亚洲欧美一区在线观看| 五月婷婷激情综合网| 欧美剧情电影在线观看完整版免费励志电影 | 欧美无人高清视频在线观看| 国产精品白丝在线| 欧美午夜影院一区| 美女一区二区在线观看| 7799精品视频| 国产精品一区在线| 国产精品久久久久三级| 91亚洲午夜精品久久久久久| 中文字幕在线不卡一区二区三区| 97aⅴ精品视频一二三区| 亚洲人成网站影音先锋播放| 精品视频在线免费看| 久久精品理论片| 成人禁用看黄a在线| 色老综合老女人久久久| 97久久久精品综合88久久| 春色校园综合激情亚洲| 欧美精品久久久久久久多人混战| 91原创在线视频| 色综合欧美在线| 在线视频欧美精品| 在线观看日韩高清av| 色综合色狠狠综合色| 欧美美女黄视频| 欧美精品一区二区精品网| 欧美国产一区二区在线观看| 18欧美亚洲精品| 亚洲一区在线电影| 男人的j进女人的j一区| 国产精品1024久久| 欧美亚洲尤物久久| 日韩免费观看2025年上映的电影| 久久精品人人做人人爽人人| 国产精品国产三级国产aⅴ原创| 亚洲乱码国产乱码精品精可以看| 欧美岛国在线观看| 国产精品丝袜久久久久久app| 亚洲欧美自拍偷拍色图| 免费观看91视频大全| 99在线精品观看| 久久综合国产精品| 亚洲国产美女搞黄色| 成人免费黄色大片| 欧美不卡一区二区三区| 亚洲一区二区三区在线看| 国产盗摄精品一区二区三区在线 | 精品欧美一区二区三区精品久久| 中文字幕欧美三区| 免费观看一级特黄欧美大片| 91麻豆国产在线观看| 久久精品在线观看| 久久激情五月激情| 精品盗摄一区二区三区| 亚洲福利视频一区二区| 成人久久18免费网站麻豆| 日韩视频一区二区| 亚洲视频香蕉人妖| 高清不卡一区二区| 日韩欧美一级特黄在线播放| 最好看的中文字幕久久| 国产一区二区三区最好精华液| 色综合色狠狠综合色| 欧美国产亚洲另类动漫| 亚洲成人免费视| 91丨九色丨蝌蚪丨老版| 国产喂奶挤奶一区二区三区| 美女在线视频一区| 欧美一区日韩一区| 天天影视色香欲综合网老头| 色综合天天综合网天天狠天天| 国产日韩欧美麻豆| 国产麻豆精品theporn| 精品精品欲导航| 国产伦理精品不卡| 最新热久久免费视频| 欧美偷拍一区二区| 亚洲无人区一区| 91麻豆精品国产无毒不卡在线观看| 亚州成人在线电影| 日韩欧美国产一区二区在线播放| 日本va欧美va瓶| 国产欧美日产一区| 在线免费不卡视频| 五月激情综合网| 欧美日本视频在线| 国产一区二区三区久久久| 国产精品久久久久久久久免费樱桃 | 国产91高潮流白浆在线麻豆| 亚洲男人的天堂网| 欧美一级二级三级乱码| caoporm超碰国产精品| 亚洲精品亚洲人成人网在线播放| 欧美日韩国产小视频在线观看| 日韩国产欧美在线视频| 久久影院视频免费| 日韩一级二级三级| 91精品办公室少妇高潮对白| 九九**精品视频免费播放| 国产精品不卡在线| 亚洲色图欧美在线| 国产精品久久久久久久久免费樱桃| 久久夜色精品国产欧美乱极品| 日韩欧美成人激情| 欧美国产乱子伦| 亚洲精品伦理在线| 亚洲与欧洲av电影| 亚洲精品免费在线| 国产精品对白交换视频| 91精品视频网| 国产精品一级片在线观看| 国产欧美1区2区3区| 色88888久久久久久影院按摩 | 欧美日韩国产在线观看| 国产一区二区主播在线| 亚洲美女精品一区| 日韩午夜激情av| 欧美人牲a欧美精品| 成人性生交大片| 五月开心婷婷久久| 亚洲视频中文字幕|