回答
收藏
分享
举报
upstream keepalive配置在使用dyups更新upstream后失效问题
提问于2023-11-30 17:30

浏览 2k

tengine nginx http块配置如下:

       nginx启动后客户端发起请求后,可以通过netstat看到nginx到上游的长连接,并且后续请求会复用连接池中的连接。然后调用dyups,增加upstream中的server:
curl -d "server 100.0.0.100:3344 weight=100;server 100.0.0.100:5566 weight=100;" 127.0.0.1:80/upstream/aaa

       此时再发的请求将不再复用dyups模块连接池中的连接,每次都是新建连接来连接上游服务,连接池中的连接也会全部超时释放。keepalive配置失效。

       经定位,在调用dyups接口扩缩容之后,新建的uscf中peer.init函数指针指向了ngx_http_dyups_init_peer,整体上会走ngx_http_dyups_module模块的流程(关键是get和free函数),不再使用keepalive模块中的连接池机制。导致keepalive配置失效。

想问下路过的各位大佬,是否有遇到这个问题以及解决方案?

已修改于2023-11-30 17:30



写下您的回答
发表回答
全部回答(0)

按点赞数排序

按时间排序

提问者
5757406duwq
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答

options请求?需要跨域访问? 

点赞 0
浏览 7.8k

sticky模块只能在linux下吧,win下没有。tomcat好像有个session复制吧,或者可以用共享session。

点赞 0
浏览 7.7k

没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。

点赞 0
浏览 10.4k