机器数量很多,超过 10 万,想通过定时打点上报一个内存 map 的 md5 签名来比对,但感觉有点重,有没有更轻量级的方案?
1
Red998 2023-07-14 11:16:16 +08:00
不能用 redis 么?
|
2
Nooooobycat 2023-07-14 11:29:50 +08:00
map.hashCode ()?
|
3
bingoup886 OP @Red998 是在 client 中的,宿主不属于同一个服务,用 redis 不太好
|
4
bingoup886 OP @Nooooobycat 这个返回值会收到 jdk 版本的影响吧
|
5
dode 2023-07-14 13:32:20 +08:00 via Android
给数据签名,客户端校验呢
|
6
vino2014zly 2023-07-14 13:44:14 +08:00
加个版本号,cache 更新时版本号同步更新
|
7
iosyyy 2023-07-14 13:45:34 +08:00
感觉没啥太好的办法..
不过就这个感觉可以取样假设有 1000 台随机分片出来的 client 拿到的数据一致就默认他一致 或者用消息队列也可 就是你把这些 hash 后的或者 md5 的数据都上传到消息队列统一处理🤔 |
8
bthulu 2023-07-14 16:53:39 +08:00
是大型连锁超市/药店的收银台吧?
10 万机器, 上报内存 md5 这个有啥重的? 稍微错开个点时间上传就行了. 比如一台 10 点整, 一台 10 点 200 毫秒, 一台 10 点 300 毫秒. 将 10 万台机器上传时间控制在 10 秒内, 并发就是 1 万每秒. 服务端用一台机器, 起个后台, 起个 rabitmq, 后台就开一个接口, 接收数据甩进 mq 完事. 再过半小时, 由业务后台从 mq 中读取数据进行处理就行了. |
9
xx6412223 2023-07-14 16:54:51 +08:00
给出的描述信息太少
1 cache 是每个节点独自拉取更新或者说维护更新的 2 有什么情况可能会造成 cache 不一致 保证所有 client 的 cache 一致,,本身这个想法就有点。。。 |
10
zibber 2023-07-15 11:44:01 +08:00
设备定时上传到对象存储, 写个脚本定时扫一下
|