首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AMQP和Node.JS实现实时数据同步

使用AMQP和Node.JS实现实时数据同步
EN

Stack Overflow用户
提问于 2010-11-17 05:43:21
回答 1查看 1.8K关注 0票数 2

我正在构建一个基于web的生产力应用程序,它必须处理适度的用户并发,并且我一直在探索各种方法来保持服务器和客户端之间的数据同步。应用程序数据在页面加载时被引导到JavaScript中,websockets用于将数据推送到服务器。

关于上下文,我目前正在使用Node.JS和Socket.IO创建一个持久的客户端-服务器网关,它充当Django后端的代理。

挑战在于,我希望让所有连接的客户端彼此保持同步,以便在一个客户端会话上对应用程序所做的任何更改都能立即反映到所有连接的客户端会话上。困难之处在于,并非所有用户都有权查看所有数据;有各种不同的用户级别,不同的用户可以拥有略有不同的数据集。

因此,当以某种方式更改对象并将更改提交到数据库时,我需要知道可以安全地将数据推送到当前连接的用户中的哪些用户。

我一直在探索不同的解决方案,我觉得这是可以通过pubsub消息队列处理的东西-使用类似AMQP的东西,但我正在努力弄清楚应用程序的结构。

在我看来,应用程序结构是这样的:

Client <--> Node.JS gateway <--> AMQP messaging queue <--> Django app

我是否应该只创建一个直接交换,将Node.js和Django实例视为单个客户端,然后以某种方式在Node.js中过滤结果?

或者这种过滤是消息传递系统可以处理的,例如,每个连接的客户端都订阅了相关的主题,并且只接收允许它们查看的数据?

我几乎没有使用消息传递系统的经验,所以我正在努力弄清楚它们在应用程序中能够扮演什么样的角色。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-02 20:26:15

我认为,对于每个客户端来说,订阅相关的队列并将节点用作哑巴网关将会容易得多。一般来说,将安全性尽可能向下推入堆栈是一个好主意。此外,我认为如果客户离线一段时间,处理起来会更容易,因为你可以把东西留在他们的队列中,然后再推回去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4199290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档