深度可用性监测,在定期实时检测跨进程资源可用性时,对超时设计、而本进程线程池资源限制方面是否有什么设计模式? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
matepi
V2EX    程序员

深度可用性监测,在定期实时检测跨进程资源可用性时,对超时设计、而本进程线程池资源限制方面是否有什么设计模式?

  •  
  •   matepi 2023 年 9 月 4 日 1435 次点击
    这是一个创建于 952 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求:

    通过监测系统,监测一个 web 服务(内含跨进程/非本地外部调用)的整体(含外部调用)可用性。

    问题:

    监测系统定期( 15 秒一次)发起检测请求; web 服务中的外部服务调用请求等一般为 30 秒超时、且此设置依照实际业务情况决定,并不由监测系统决定、不由监测系统决定、不由监测系统决定。

    当外部服务调用请求发生不可用时,会因为监测系统的检测请求,在 web 服务中不断积累起对应的检测线程,最终导致 web 服务线程过载。

    进一步地,当 web 服务内可能有多个外部调用时,情况更为复杂。

    简单的考虑,监测系统定期的时长必须>Max(所有外部调用超时),又似乎不能满足监测及时性。

    目的:

    寻求一个设计模式经验,并有合适的规则理由,明确检测定期的时长、外部超时的时长、对整体服务资源(如线程池)影响可控。
    第 1 条附言    2023 年 9 月 4 日
    一些已有服务设计模式的说明,但都较为简单
    https://iambowen.gitbooks.io/cloud-design-pattern/content/patterns/health-endpoint-monitoring.html
    https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.health
    都没讲到深度检测时的超时<->线程资源,这个肯定会涉及到的设计点。
    3 条回复    2023-09-08 08:48:23 +08:00
    slowgen
        1
    slowgen  
       2023 年 9 月 4 日
    本质就是一个 C10K 的问题,当你想用多线程搞线程池的时候已经错误了,要用全链路异步的方案.

    通常纠结这个问题的一般是纯 java 系程序员,换个带异步语言会豁然开朗了.
    lsk569937453
        2
    lsk569937453  
       2023 年 9 月 4 日
    服务可用性的深度检测有必要吗?

    k8s 的 LivenessProbe (存活探测)和 ReadinessProbe (就绪探测)不能满足需求吗?

    服务中的接口有些是不能做深度检测的,比如支付。难道让所有的接口都做幂等性限制?
    服务中的接口使用了 HTTP 中不同的 Method 。你难道让所有的用户去你的平台上配置 Method+Param ?
    matepi
        3
    matepi  
    OP
       2023 年 9 月 8 日
    @shuimugan 难点在于,设计的是监测系统,而不是被监测系统。不能因为要上个监测系统,存量的被监测系统就要做一个新的非线程、异步化的方式来处理。这种思路是不太能解决问题的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     924 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:35 PVG 04:35 LAX 13:35 JFK 16:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86