V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gebishushu
V2EX  ›  程序员

写代码中,有个思路有问题,求解

  •  
  •   gebishushu · 2022-11-17 01:16:17 +08:00 · 1884 次点击
    这是一个创建于 518 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假如 现在有 10 台云服务器,服务器上运行我的软件,每分钟会记录一次上传和下载

    我现在自己得写个监控,通过服务器运行的软件 api 获取到每分钟每台上传和下载,总量写入到本地数据库 数据库表中有个字段是状态,默认状态是 0 ,假如 10 台服务器都能获取正确上传和下载,会把状态改为 1 ,下次不再获取这个时间段的上传下载,如果有一台没有获取到,这个程序都会卡到这里一直去获取 我的判断是根据 10 台在线,必须获取到 10 台的上传和下载才能认为完成

    偶尔会发生服务器挂掉的情况,实际在线只有 9 个,服务器的在线统计会有延迟,这样数据库里就会有一些状态为 0 没统计完的数据,我没思路了

    10 条回复    2022-11-17 16:55:34 +08:00
    ZRS
        1
    ZRS  
       2022-11-17 02:10:04 +08:00
    状态字段用 bit 直接精确到哪台已获取就完事了....定时扫表补偿拉取
    gebishushu
        2
    gebishushu  
    OP
       2022-11-17 02:47:55 +08:00
    @ZRS 谢谢 我大概也是这么想的 不知道可行不可行 我试试
    opengps
        3
    opengps  
       2022-11-17 08:34:05 +08:00
    检测结果只代表过去一个检测周期(更准确的说只代表检测那一刻),这种统计推荐用主动上报,被动统计的方案,监控端收不到固定间隔发来的心跳就判定为离线故障
    xaplux
        4
    xaplux  
       2022-11-17 08:39:18 +08:00
    如#3 推荐主动上报
    brader
        5
    brader  
       2022-11-17 09:37:25 +08:00
    建议做报表统计页面的形式,那 10 台服务器,不要做任何逻辑判定,做的事情越简单越好。

    比如,那 10 台服务器只负责每分钟上报数据到数据统计中心,上报数据可携带时间戳、机器 ID 等字段,统计中心收集数据,根据机器 ID 、时间戳与当前时间判定这份数据属于正常上报还是延迟上报,将判定结果一起写入统计表。

    然后数据中心根据统计表,输出每分钟纬度的统计图(可用折线图等),用颜色等方式清晰标明哪一分钟的点,上报的机器数量是否正常
    gebishushu
        6
    gebishushu  
    OP
       2022-11-17 11:02:16 +08:00
    @brader
    @xaplux
    @opengps
    服务器运行的软件不归咱管理,只有 api ,所以还是得咱去获取下
    opengps
        7
    opengps  
       2022-11-17 11:36:15 +08:00
    @gebishushu 如果没法靠服务器里加监控主动上报,那你得把你监控接口请求的超时时间缩短,达到接近实时的效果。比如 1 秒超时,而不是等到默认的超时才报错更新
    jones2000
        8
    jones2000  
       2022-11-17 12:12:16 +08:00
    ws 或 tcp 长连接, 实时推送每个服务器的状态信息。 统计的时候直接获取在线的服务器然后统计
    akira
        9
    akira  
       2022-11-17 14:22:22 +08:00
    你自己要先想好,“完成”的定义
    xuanbg
        10
    xuanbg  
       2022-11-17 16:55:34 +08:00
    api 不能获取一个时间段内的上传 /下载记录吗?记录拿到了可以很简单地以图表的形式显示出来。这才叫监控,一次拿一个是怎么想的我有些不能理解。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5387 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:25 · PVG 16:25 · LAX 01:25 · JFK 04:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.