gpt4 book ai didi

go - 阻止来自Pod的HTTP请求的最大数量

转载 作者:行者123 更新时间:2023-12-03 10:07:42 25 4
gpt4 key购买 nike

我有一个Go应用,该应用已部署到Kubernetes上的两个8个核心Pod实例中。
从中,我收到一个ID列表,然后再通过将每个ID发送到POST端点从另一个服务中检索一些数据。
我正在使用有限的并发模式来为此外部服务提供最大数量的(同时也是请求的)并行goroutine。
我将并发限制设置为:

sem := make(chan struct{}, MAX_GO_ROUTINES)
通过此设置,我开始通过增加MAX_GO_ROUTINES编号来进行测试。我通常会收到20000个ID进行检查。因此,我通过在100到20000之间的任意位置设置MAX_GO_ROUTINES来进行游戏。
我注意到的一件事是,随着我越来越高,一些请求开始失败,并显示以下消息: 连接从此外部服务重置
所以我的问题是:
  • 在这种情况下,什么是阻止程序?
  • 并发HTTP POST请求最多可以发送8核和4GB内存的服务器的限制吗?是内存限制吗?或文件描述符限制?
  • 是从服务器还是从外部服务器获取错误?
  • 最佳答案

    在这种情况下,什么是阻止程序?
    如评论所述:HTTP“连接重置” generally means:

    the connection was unexpectedly closed by the peer. The server appearsto have dropped the connection on the unsuspecting HTTP client beforesending back a response. This is most likely due to the high load.


    大多数Web服务器(例如nginx)都有一个队列,在它们等待服务时会暂存连接。当队列超过某个限制时,连接可能会断开并“重置”。因此,最有可能的原因是您的上游服务已饱和(即您的应用发送了超出其服务范围的请求,并重载了队列)
    并发HTTP POST请求可发送8个内核和4GB内存的服务器的限制是多少?是内存限制吗?或文件描述符限制?
    全部:)在某些时候,您的特定工作负载将使逻辑限制(如文件描述符)或“物理”限制(如内存)重载。不幸的是,真正了解哪种资源将被耗尽(以及遇到哪些约束)的唯一方法是 run tests and profile并基准化您的工作负载:(
    是我从服务器还是从外部服务器获取错误?
    HTTP连接重置很可能是外部的,它表明连接对等方(上游服务)重置了连接。

    关于go - 阻止来自Pod的HTTP请求的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65720557/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com