想请问一下,当数据库中某个字段变化的时候,需要将这个变化推送给app进行显示的这样一个业务需求有合适的解决方案吗?
我查询了一些资料,发现有下面的一个解决方式:
1.长轮询的方法:但是我觉这个需要耗费性能
2.websocket方式:这个实现起来比较复杂,而且数据库字段变化并不频繁,实时性的要求不高
3.采用rabbitmq的方式:我感觉这个靠谱一点,因为有些物联网的监控软件会去监控设备的状态变化,但是不知道现在有没有app是采用这种方案的。
想请问一下,当数据库中某个字段变化的时候,需要将这个变化推送给app进行显示的这样一个业务需求有合适的解决方案吗?
我查询了一些资料,发现有下面的一个解决方式:
1.长轮询的方法:但是我觉这个需要耗费性能
2.websocket方式:这个实现起来比较复杂,而且数据库字段变化并不频繁,实时性的要求不高
3.采用rabbitmq的方式:我感觉这个靠谱一点,因为有些物联网的监控软件会去监控设备的状态变化,但是不知道现在有没有app是采用这种方案的。
比较简单的方式是长轮训模式;
比如说查询变化的接口超时时间为 30s
, 前端发起请求后,后端查询变化,如果没有变化,后端不要直接将结果返回给前端,而是等待 若干秒
之后循环的去查询数据库变化,在临近 30s
超时时,如果还没有变化才返回前端没有变化这个结果;之后前端继续轮训,中间后端如果有变化的话可以直接返回变化结果;
这种方式相对比较简单,也无需频繁发起轮训请求。
6 回答4.8k 阅读✓ 已解决
12 回答5.9k 阅读
4 回答7.2k 阅读
2 回答7.4k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
2 回答7.5k 阅读✓ 已解决
1 回答9.5k 阅读✓ 已解决
对于数据库字段变化推送给app进行显示的需求,有几种常见的解决方案可以考虑:
根据你的描述,如果数据库字段变化并不频繁且实时性要求不高,可以考虑使用推送通知的方式。如果实时性要求较高,可以考虑WebSocket方式。如果需要处理大量消息且具有一定的灵活性和扩展性,可以考虑使用消息队列。具体选择哪种方式,还需要根据具体业务需求和技术实现的可行性进行综合评估。