hyperledger - Hyperledger 锯齿 - 请求失败,状态码为 429
问题描述
我正在使用Hyperledger sawtooth,我在其中存储交易,同时我也在读取交易。
但在某些时候,我收到“请求失败,状态码为 429”的错误,并且某些批次被拒绝。
有没有人遇到过类似的问题?您是否找到任何替代解决方案?
解决方案
让我们了解您面临的问题(内容/原因/方式部分):
如果 Hyperledger Sawtooth 发现请求过多,则会使用代码 429 拒绝客户端请求。验证器维护正在生成多少块、有多少事务流入它的统计数据,并预测它可以在给定的内部处理多少事务。换句话说,如果您开始收到错误代码 429,则表明您的验证者认为它有足够的交易来处理。这将使验证者免于大量请求。
可能的解决方案:(这些只是许多可能性中的几个指针)
限制客户端交易速率:代理客户端请求,放置重试机制将交易发送给验证者。如果你的代理层发现验证器已满,让它缓存来自客户端的请求。
从验证器中禁用背压处理程序。我不知道它有任何标志。我看到人们这样做并发现这不是一个好主意。
希望您找到最适合您的解决方案,很高兴了解哪种解决方案最适合您
推荐阅读
- mysql - 如何优化以下 SELECT 查询
- python - 在函数列表中选择和执行函数
- common-lisp - 为什么斐波那契数列的结果在一定数量后开始发散?
- javascript - 如何从字符串中提取字符但仅在看到某个短语之后?
- python - 如何从非单词字符中清除 csv 文件并在 python 中删除包含它们的单词?
- python - 如何使用 Tensorflow Estimator 将具有权重的模型保存到单个 protobuf 文件中?
- python - 为什么 Python 会向我返回一条错误消息,说我错误地使用了 int()
- javascript - 获取从自定义选择到 javascript 中选择的值
- sql - 具有两个不同分区的 LAG 函数
- python - 如何将 quotient_graph 结果写入文件