tengine Reverse proxy Too much Tcp Connection issue

t5fffqht  于 6个月前  发布在  其他
关注(0)|答案(3)|浏览(76)

Question

背景:
由于在极端流量并且不能预估流量情况下,如果后端接口的延时是变慢时,在这种情况下nginx与后端服务走http1.1协议,为了把所有的request灌入到后端,会开启大量的Tcp连接;

1: 如果是client ->http1.1->nginx->http3->backend, 目前是支持的么?
https://wbsrv.ru/angie-pro/docs/en/#index-features

2: https://wbsrv.ru/angie-pro/docs/en/http_upstream/#u-queue 这种入队的功能有可能实现吗?

qnzebej0

qnzebej01#

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。
  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。
3hvapo4f

3hvapo4f2#

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。
  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。

现在是否有h2 upstream可以开源出来了?

zbdgwd5y

zbdgwd5y3#

  1. 目前不支持后端upstream的H3协议,如果有广泛的业务场景需求,可以考虑排期支持。
    在长连接业务中是有收益的,大量的客户端h3长连接到tengine,tengine到后端维持h3长连接。
  2. angie这个queue相当于加了一层buffer,但队列满时,依旧是502,这个功能的意义不是很大。可以适当调整$upstream_read_time后端超时时间,并且保证客户端调用侧的超时时长大于后端upstream的超时时长。
    @lianglli 多谢回复,关于2的话,我有一个场景困扰很久;

对于nginx来说反向代理走http1.1协议,在突增流量的情况下,如果backend的接口响应变慢了,nginx会大量开启新的TCP连接到backend,这个并不是预期的,所以走h2/h3的连接复用或者通过queue缓存一部分request应该是比较好的选择,或者面对突增流量,下游接口变慢有更好的解决方案吗?

相关问题