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

2022-11-17 01:16:17 +08:00
 gebishushu

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

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

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

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

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

然后数据中心根据统计表,输出每分钟纬度的统计图(可用折线图等),用颜色等方式清晰标明哪一分钟的点,上报的机器数量是否正常
gebishushu
2022-11-17 11:02:16 +08:00
@brader
@xaplux
@opengps
服务器运行的软件不归咱管理,只有 api ,所以还是得咱去获取下
opengps
2022-11-17 11:36:15 +08:00
@gebishushu 如果没法靠服务器里加监控主动上报,那你得把你监控接口请求的超时时间缩短,达到接近实时的效果。比如 1 秒超时,而不是等到默认的超时才报错更新
jones2000
2022-11-17 12:12:16 +08:00
ws 或 tcp 长连接, 实时推送每个服务器的状态信息。 统计的时候直接获取在线的服务器然后统计
akira
2022-11-17 14:22:22 +08:00
你自己要先想好,“完成”的定义
xuanbg
2022-11-17 16:55:34 +08:00
api 不能获取一个时间段内的上传 /下载记录吗?记录拿到了可以很简单地以图表的形式显示出来。这才叫监控,一次拿一个是怎么想的我有些不能理解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/895814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX