V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LaughingCat
V2EX  ›  程序员

数据同步的需求实现

  •  
  •   LaughingCat · 2019-09-10 16:37:46 +08:00 · 2107 次点击
    这是一个创建于 1890 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pc 端可以维护基础数据,如果基础数据发生变化,需要通过消息的方式提示安卓调用数据同步接口,请问有什么好的解决方案

    6 条回复    2019-09-10 22:38:26 +08:00
    guxingke
        1
    guxingke  
       2019-09-10 16:56:03 +08:00
    1. 轮询, 实时性要求不高的情况下, 可以考虑 APP 每分钟进行数据同步.
    2. 消息通知
    - websocket 长连接.
    - 第三方 push 消息透传
    - 第三方 IM 自定义消息.
    HansCathy
        2
    HansCathy  
       2019-09-10 16:59:14 +08:00
    PC 端数据变化 写入消息队列( kafka 等),安卓端消费 kafka 数据,更新基础数据
    楼主说的那种 耦合对太高了,PC 端数据变化 还要通知安卓端,安卓端再调用 PC 端接口去同步
    LaughingCat
        3
    LaughingCat  
    OP
       2019-09-10 17:10:09 +08:00
    轮休调用的方法不太 ok,因为基础数据的数据量在很大的情况下,这种频繁的调用太慢,而且很多时候没意义。我的想法是 将基础数据报错到 redis 缓存中,一旦有基础数据改动就修改缓存中的值。安卓通过长连的方式与 redis 进行“长连”不知道这种方式对不对。
    wengang285
        4
    wengang285  
       2019-09-10 17:17:01 +08:00
    @LaughingCat PC 端的数据,是你自己更新还是别的系统?如果是自己的系统,那么更改完之后,通知 andoird 来拉取就可以了,如果不是别的系统更新,那就比较麻烦了
    cshlxm
        5
    cshlxm  
       2019-09-10 17:19:16 +08:00
    数据变动推送一条消息到 mq,推送系统消费 mq 里的消息,给安卓推送一条消息,后台服务接收推送消息,进行数据处理,如果是前端,就是 websocket~ 维持长连接,不过不太可靠,应该有 livequery 之类组件~
    opengps
        6
    opengps  
       2019-09-10 22:38:26 +08:00
    消息通知,我每次回复都是这句话:要么客户端轮训,要么长连接推送。
    还写了文章用来粘贴: https://www.opengps.cn/Blog/View.aspx?id=427
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.