修改ETCD返回数据限额

问题

通过 get_prefix, get_range 等ETCD 接口查询大量数据时,报数据大小超过限额。

grpc_message:"Received message larger than max (5834875 vs. 4194304)"

原因

ETCD默认设置了4MB数据限额,如果返回的数据超过限额则会报错。

解决方法

解决方法也很直接,修改数据限额。

但问题是要修改哪一个参数?参数的格式?如何修改?

为了寻找找到答案,费了不少周折。因为用的是 ETCD Python 客户端,常见的 golang 方案不适用,网上 Python 客户端的文章也非常少。

功夫不负有心人,总于找到了答案。

  1. 参数是与 grpc 接收消息长度有关,名称为 grpc.max_receive_message_length;
  2. 在Python客户端,是在建立ETCD client的时候,通过 grpc_options 参数传递;
  3. grpc_options 的格式是 dict_items, 可以这样定义:

grpc_options = {'grpc.max_receive_message_length':1610241024}.items()

相关推荐
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-位置断言
python·正则表达式·位置断言
月光船幽幽4 小时前
拓扑实验三组协同验证方案
python·算法
智鸟科技GemeOpen开发者智能设备4 小时前
MQTT智能插座GSPM1B2 · 开发者实战指南
java·开发语言·python·物联网
Thinker QAQ4 小时前
并发编程(七):volatile——从语言规则到 CPU
java·python·go·并发编程·volatile·memory model
Fluxproxy5 小时前
Python BeautifulSoup4 超全实战教程|解决网页乱码、标签匹配、层级查找、数据提取难题
开发语言·python
加油yx5 小时前
数据库基础
数据库
天桥下的卖艺者5 小时前
chrals.CTI函数升级版发布,增加了CTI衍生的脂肪指数提取
数据库·r语言
databook5 小时前
时间序列分解:从噪声中提取有效信号
python·数据挖掘·数据分析
帷幕落秋5 小时前
Mysql多实例——一个服务器多个mysql服务
运维·数据库
坤坤子吖5 小时前
Python基础语法学习:条件、循环与程序控制
开发语言·笔记·python·学习