数据同步的需求实现

2019-09-10 16:37:46 +08:00
 LaughingCat

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

1946 次点击
所在节点    程序员
6 条回复
guxingke
2019-09-10 16:56:03 +08:00
1. 轮询, 实时性要求不高的情况下, 可以考虑 APP 每分钟进行数据同步.
2. 消息通知
- websocket 长连接.
- 第三方 push 消息透传
- 第三方 IM 自定义消息.
HansCathy
2019-09-10 16:59:14 +08:00
PC 端数据变化 写入消息队列( kafka 等),安卓端消费 kafka 数据,更新基础数据
楼主说的那种 耦合对太高了,PC 端数据变化 还要通知安卓端,安卓端再调用 PC 端接口去同步
LaughingCat
2019-09-10 17:10:09 +08:00
轮休调用的方法不太 ok,因为基础数据的数据量在很大的情况下,这种频繁的调用太慢,而且很多时候没意义。我的想法是 将基础数据报错到 redis 缓存中,一旦有基础数据改动就修改缓存中的值。安卓通过长连的方式与 redis 进行“长连”不知道这种方式对不对。
wengang285
2019-09-10 17:17:01 +08:00
@LaughingCat PC 端的数据,是你自己更新还是别的系统?如果是自己的系统,那么更改完之后,通知 andoird 来拉取就可以了,如果不是别的系统更新,那就比较麻烦了
cshlxm
2019-09-10 17:19:16 +08:00
数据变动推送一条消息到 mq,推送系统消费 mq 里的消息,给安卓推送一条消息,后台服务接收推送消息,进行数据处理,如果是前端,就是 websocket~ 维持长连接,不过不太可靠,应该有 livequery 之类组件~
opengps
2019-09-10 22:38:26 +08:00
消息通知,我每次回复都是这句话:要么客户端轮训,要么长连接推送。
还写了文章用来粘贴: https://www.opengps.cn/Blog/View.aspx?id=427

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/599693

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX