我有一个Go应用程序,它部署到Kubernetes上的两个8核Pods实例。从中,我收到一个ID列表,而不是稍后通过将每个ID发送到POST端点来从另一个服务检索一些数据的ID。我正在使用有界并发模式来向此外部服务提供最大数量的模拟goroutines(以及请求)。
我将并发限制设置为:
sem := make(chan struct{}, MAX_GO_ROUTINES)
通过这种设置,我开始通过增加MAX_GO_ROUTINES数字来玩弄它。我通常收到大约20000个id进行检查。因此,我通过设置100到20000之间的任何地方的MAX_GO_ROUTINES来玩。
我注意到的一件事是,随着我越来越高,一些请求开始失败,并显示以下消息:从此外部服务重置连接。
所以我的问题是:
在这种情况下,阻碍因素是什么?
具有 8 个核心和 4GB RAM 的服务器可以发送的并发 HTTP POST 请求的限制是多少?这是内存限制吗?或文件描述符限制?
我收到的错误是来自我的服务器还是来自外部服务器?
神不在的星期二
相关分类