Golang grpc設定最大傳送接收位元組數

2021-10-11 01:49:48 字數 729 閱讀 1686

當接收的資料量超過了8m時, grpc報錯如下

rpc error: code = resourceexhausted desc = grpc: received message larger than max (8388613 vs. 8388608)

由上錯誤可知,最大接收資料大小是8m位元組左右, 而有時候我們又需要傳輸大於此資料量的資料怎麼辦呢?

在grpc庫中發現了如下兩個函式

func maxcallrecvmsgsize(bytes int) calloption 

}func maxcallsendmsgsize(bytes int) calloption

}

單位是位元組, 引數型別是int, 也就是最大支援傳送接收為2g-1個位元組

既可以接收大小 grpc.maxcallrecvmsgsize(1024 * 1024 * 20)

可擴充套件傳送大小 grpc.maxcallsendmsgsize(1024*1024*20) 

使用方式, 在客戶端呼叫介面,可擴充套件引數加入上述函式進行設定 即可

另外就是在客戶端連線的時候進行設定

conn, err := grpc.dial(host, grpc.withinsecure(), grpc.withdefaultcalloptions(grpc.maxcallrecvmsgsize(1024 * 1024 * 8)))

Linux 設定最大鏈結

最大連線數 ulimit shn 65535 最大檔案控制代碼數,最大開啟檔案數 等同最大連線數 ulimit a 檢視 etc security limits.conf 程序最大開啟檔案數 nofile 可以被理解為是檔案控制代碼數 檔案描述符 還有socket數 soft nofile 6553...

mysql最大併發數設定

mysql 預設的最大併發連線為100,預設的連線數無法滿足大量client 連線的請求.但是可以通過以下方式改變,使用root使用者登入mysql 系統引用 mysql show variables like max connections variable name value max conn...

redis最大快取設定策略

一 最大快取設定 示例 maxmemory 100mb 單位 mb,gb。預設為0,沒有指定最大快取,如果有新的資料新增,超過最大記憶體,則會使redis崩潰,所以一點要設定。設定maxmemory之後,配合的要設定快取資料 策略。二 策略演算法設定 當maxmemory限制到達的時候,redis將...