亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang grpc的Dial在IM類型,微服務架構當中是否需要Close?

golang grpc的Dial在IM類型,微服務架構當中是否需要Close?

三國紛爭 2018-10-24 14:04:02
問題描述golang實際開發當中,grpc的Dial,是否需要關閉,如果不需要關閉的話就能放到init()中完成。感覺頻繁的連接關閉還不如保持連接池長連。相關代碼func init() {     once.Do(func() {    var err error     conn, err = grpc.Dial(config.ServerURL, grpc.WithInsecure())      if err != nil {       logger.Err(err, "Gateway Dial 錯誤")       }      //微服務當中進行grpc進行通信,是否需要頻繁的對conn進行close跟connect確保資源被釋放?       //還是保持tcp長連不斷開?       //如果需要defer就不能放init()     //defer conn.Close()    }) }
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

不需要關閉的,可以放到一個池子里,用的時候取。
這個時候分為兩種情況。
第一種是從池子里可以取到,則用,用完放回去。
第二種情況是取不到,這個時候,new一個,但是用完之后放回去,這個時候分為兩種情況

  1. 池子已經是滿的,此時關閉。

  2. 池子未滿,放入池子。

大概就是這樣,很多grpc的plugin都是這么實現的,可以去看看。
希望能給你提供一些思路。


查看完整回答
反對 回復 2018-10-24
  • 1 回答
  • 0 關注
  • 1412 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號