请教一个数据同步的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Curiosity777
V2EX    Java

请教一个数据同步的问题

  •  
  •   Curiosity777 2024-04-02 09:47:34 +08:00 2817 次点击
    这是一个创建于 627 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数据全量同步 rpc 方式,目前 11mb ,每天增长 1mb 左右,每天大约 1w 条左右,这种提供全量同步接口,是直接都给他查出来,还是提供分页接口让客户端去分页查询呀

    目前的想法就是提供一个分页的查询接口,最大查询条数 5000 条

    服务器配置 2c16 核 32 线程,120g 内存,系统应该会稳定运行个 10 年左右

    大佬们有更好的实践方式吗
    18 条回复    2024-04-02 18:10:20 +08:00
    halov
        1
    halov  
       2024-04-02 09:49:18 +08:00
    分页吧
    admol
        2
    admol  
       2024-04-02 09:50:31 +08:00   2
    这配置 这数据量 不随便玩儿吗
    wqhui
        3
    wqhui  
       2024-04-02 09:55:27 +08:00
    稳定运行 10 年。。。设计跑个三五年差不多了,到时候自然会有新的方法或者新的需求要重写,另外你这数据量感觉用不着这么好的服务器
    qW7bo2FbzbC0
        4
    qW7bo2FbzbC0  
       2024-04-02 09:55:52 +08:00
    要考虑断点续传以及分页的稳定性,最好加个自增 id ?每次取用时加上 id > lastTimeGotID
    yngzij
        5
    yngzij  
       2024-04-02 09:59:15 +08:00
    1W 条直接查了,mongo 可以都直接插入,mysql 分次插入就好了。
    crazyweeds
        6
    crazyweeds  
       2024-04-02 10:53:36 +08:00   1
    一定要做分页,并且一定要限制最大返回数量,不然后续你麻烦,对方你麻烦。
    当然,你也可以全部,后面等着刷 KPI ,毕竟老板喜欢员工忙忙的样子,大概是可以治愈他的焦虑罢。
    Curiosity777
        7
    Curiosity777  
    OP
       2024-04-02 10:56:17 +08:00
    @crazyweeds 哈哈,明白了,是这样的
    Curiosity777
        8
    Curiosity777  
    OP
       2024-04-02 10:56:50 +08:00
    @qW7bo2FbzbC0 有的,把这个利用上
    Curiosity777
        9
    Curiosity777  
    OP
       2024-04-02 10:57:06 +08:00
    @admol 还有其他的业务
    sakilascott
        10
    sakilascott  
       2024-04-02 10:58:28 +08:00
    10 年你都不在这个公司了,即便你在这个公司,也可能不负责这个业务了。
    规划 2-3 年足够了
    Curiosity777
        11
    Curiosity777  
    OP
       2024-04-02 11:13:08 +08:00
    @sakilascott 是这样的,就是想考虑全面些
    meeop
        12
    meeop  
       2024-04-02 11:13:18 +08:00
    随便,现在一个网页都数百兆了,全查回来 2 年以内都没问题

    正规做法当然是提供一个支持分页查询接口,一点一点同步
    admol
        13
    admol  
       2024-04-02 11:15:14 +08:00   1
    好吧,认真回答你下

    看你的描述,你应该是想问的是:每天去全量同步一次(前一天)增量的所有数据,还是分页去同步(前一天)增量的数据,也就是全量还是分页去同步新增的数据。

    建议是:
    1 、查询接口一定要限制一个数据范围,所以要分页
    2 、要支持指定时间、主键 ID 等范围同步指定数据(失败后人工重试等异常场景)
    3 、同步结果是否有通知?同步状态、同步数据条数等
    Curiosity777
        14
    Curiosity777  
    OP
       2024-04-02 11:42:15 +08:00
    @admol #13 收到,感谢大神,同步结果没有通知,我这边只负责提供数据,剩下的就是业务方自己保证了
    midsolo
        15
    midsolo  
       2024-04-02 13:35:39 +08:00
    补充一下:
    1 、提供出去的接口一定要限制数据范围,并且这个范围不能太大
    2 、下游请求时得带上时间戳,要在你设定的阈值范围内才可拉取
    3 、把提供出去的数据封装成一个批次,让下游分批次拉取
    4 、记录好下游拉取数据的日志,避免后续扯皮
    Karte
        16
    Karte  
       2024-04-02 15:12:23 +08:00
    如果数据是写入之后无修改, 可以记录上次其获取到的数据 id, 然后将这个 id 之后的数据再发送给他. 有效减少查全库导致性能的下降.

    如果修改不大建议最好做个 snapshot. 定时生成一个 snap 节点, 然后用户通过提交上次 snap 节点获悉所有数据更新状态.
    rm0gang0rf
        17
    rm0gang0rf  
       2024-04-02 17:00:32 +08:00
    我这 一天 3000-5000, 2 核 4g.....运行 3 年了...
    1018ji
        18
    1018ji  
       2024-04-02 18:10:20 +08:00
    感觉还不如拉文件省事
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2469 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:15 PVG 23:15 LAX 07:15 JFK 10:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86