V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tianshunovel2
V2EX  ›  问与答

业务指标的采集与同步如何设计呢?

  •  
  •   tianshunovel2 · Sep 5, 2023 · 1510 views
    This topic created in 965 days ago, the information mentioned may be changed or developed.
    最近在做小说网站,需要统计小说作品的点击次数这个业务指标,需要实时记录并提供历史查询功能。
    后端用的 golang ,服务器是小服务器 1h2G 哈,不能运行 k8s 啥的。

    目前的方案是:
    后端程序启动时,查询 mysql 把各个作品的点击数据批量同步到 redis ,这是初始化;
    用户点击作品时,更改 redis 中的作品的点击数据,记录下待同步的作品 id ;
    在每 10 分钟执行一次的定时任务中,如果发现存在待同步的作品 id ,就把它们的 redis 中的点击数据批量同步到 mysql ;

    遇到的问题:
    同步点击数据到 mysql 时,从 redis 里取的的可能是 0 值,作品的点击数据就被重置为 0 了;或者 redis 服务意外停了,导致指标数据异常;同步时可能因为延时,导致数据不那么太健康,比如原本 9 点 30 分的数据,记录在了 9 点 38 分。
    如何设计一个精简健壮的指标采集同步系统呢?
    4 replies    2023-09-05 22:22:16 +08:00
    Morriaty
        1
    Morriaty  
       Sep 5, 2023
    健壮点就上 kafka 咯,mysql 只做定时数据校验,kafka 可以从头回溯
    dahuahua
        2
    dahuahua  
       Sep 5, 2023
    为什么要重新同步回 mysql 呀?而且 redis 又不是不支持持久化
    IvanLi127
        3
    IvanLi127  
       Sep 5, 2023 via Android
    健壮?那先上集群。。。
    我认为用这个硬件配置的项目,redis 够了,redis 数据异常是起不来的。
    hahahahahahahah
        4
    hahahahahahahah  
       Sep 5, 2023 via iPhone
    为啥不用时序数据库来存储
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5726 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 01:39 · PVG 09:39 · LAX 18:39 · JFK 21:39
    ♥ Do have faith in what you're doing.