• 请不要在回答技术问题时复制粘贴 AI 生成的内容
macscsbf
V2EX  ›  程序员

大佬们,问个问题

  •  
  •   macscsbf · Dec 27, 2022 · 5296 views
    This topic created in 1407 days ago, the information mentioned may be changed or developed.
    线上 k8s 有个 websocket 服务端的 pod ,外面用 nginx 做代理。
    平常大概几万个客户端与服务端保持连接,然后每次重启以后客户端会重新连接到这个服务端。
    但是我发现每次重启以后,客户端重新连接时常会出现客户端连接超时的问题,经排查看到 nginx 经常出现 upstream timeout 的问题。想问下这个问题怎么解决
    18 replies  •  2022-12-27 17:57:24 +08:00
    opengps
    opengps
    Dec 27, 2022
    1
    几万个,有没有超 65535 ?用了 nginx 的连接转发,意味着不再是直接承载外部连接,而是内部多一层占用,这个占用的连接数是受限制的。
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    2
    @opengps 没有超过,2w 多吧,这个是会有 65535 的限制吗
    opengps
    opengps
    Dec 27, 2022
    3
    @macscsbf 两个方向:
    1 ,单个进程发起的连接数可能有限制
    2 ,重启本身,外部有大量连接需要瞬间建立,这个过程本身就很费资源,如果没有连接池等方案去优化的话,出现超时属于正常现象
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    4
    @opengps 忘了说了,重启下 nginx 就恢复正常了。主要是这算是服务内部的问题,还是 nginx 我哪里配置上有什么问题呢
    justseemore
    justseemore
    Dec 27, 2022
    5
    都上 k8s 了..为啥不滚动升级..
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    6
    @zpfhbyx 重启是服务崩了。。这是个老项目,没什么升级的需求
    iisky1121
    iisky1121
    Dec 27, 2022
    7
    主要是客户端和 nginx 保持长连接,nginx 和服务端保持连接,你断开的是服务端和 nginx ,但是客户端和 nginx 并没有断开,所以触发超时
    iisky1121
    iisky1121
    Dec 27, 2022
    8
    这里面服务端和 nginx 中间应该是通过 lb 或者 service ,问题在这里面
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    9
    @iisky1121 这确实应该是这样的,但是 upstream timeout 对应的应该是我上游的服务端吧,意思是客户端请求 nginx 请求 pod 的超时是吗?用的是 service
    defunct9
    defunct9
    Dec 27, 2022
    11
    开 k9s ,让我上去看看
    whoosy
    whoosy
    Dec 27, 2022
    12
    nginx upstream 有缓存,转发到了 pod 之前的地址上去了,重启 nginx 会生效
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    13
    @whoosy 我填写的地址是 service 的 ip,因为 pod ip 是一直在变的
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    14
    @defunct9 我没这个权限。所以问的可能也不是那么清楚
    WeSoniC
    WeSoniC
    Dec 27, 2022
    15
    服务的 service 是什么类型? nginx 是在集群内还是在集群外?我之前踩过坑,nginx 的反代如果你上游地址用的是域名,默认是不会自动刷新的,只有第一次启动会解析,关键字 nginx resolver 。
    macscsbf
    macscsbf
    OP
    Dec 27, 2022
    16
    @WeSoniC nginx 是在集群外部的,service 是 ClusterIp
    securityCoding
    securityCoding
    Dec 27, 2022
    17
    k8s 流量没切完 ,pod 停止脚本做一下 sleep 吧
    webcape233
    webcape233
    Dec 27, 2022 via iPhone
    18
    帖子题目不描述问题....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4451 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:00 · PVG 18:00 · LAX 02:00 · JFK 05:00
    ♥ Do have faith in what you're doing.