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

如何校验多个 jvm 中的内存 cache 的数据一致性?

  •  
  •   bingoup886 · Jul 14, 2023 · 2472 views
    This topic created in 1208 days ago, the information mentioned may be changed or developed.

    机器数量很多,超过 10 万,想通过定时打点上报一个内存 map 的 md5 签名来比对,但感觉有点重,有没有更轻量级的方案?

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

    保证所有 client 的 cache 一致,,本身这个想法就有点。。。
    zibber
    zibber
    Jul 15, 2023
    10
    设备定时上传到对象存储, 写个脚本定时扫一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2366 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:26 · PVG 23:26 · LAX 07:26 · JFK 10:26
    ♥ Do have faith in what you're doing.