我想创建一个队列,客户端可以在其中放入请求,然后服务器工作线程可以将它们拉出,因为它们有可用的资源。
我正在探索如何使用 Firebase 存储库来做到这一点,而不是使用外部队列服务,然后必须将数据注入 Firebase。
考虑到安全性和验证工具,这里有一个简单的例子来说明我的想法:
- 用户将请求推送到“队列”存储桶中
- 服务器拉出请求并将其删除(如何确保只有一台服务器收到请求?)
- 服务器验证数据并从私有存储桶中检索(或注入新数据)
- 服务器将数据和/或错误推送回用户的存储桶
一个可能有用的简化示例是身份验证:
- 用户将身份验证请求放入公共队列
- 他的登录名/密码进入他的私人存储桶(只有他可以读/写的地方)
- 服务器获取身份验证请求,检索登录名/密码,并针对只有服务器可以访问的私有存储桶进行验证
- 服务器将令牌推送到用户的私有存储桶中
(当然,公共队列中仍然存在一些安全漏洞;我现在只是在探索)
其他一些使用示例:
- 只读状态队列(用户状态通过私有存储桶进行通信,服务器将其写入公共存储桶,该存储桶对公众只读)
- 消息队列(消息通过用户发送,服务器决定将它们放入哪些讨论桶)
所以问题是:
- 这是一个很好的设计,可以很好地集成到即将到来的安全计划中吗?正在探索哪些替代方法?
- 如何让所有服务器监听队列,但只有一个服务器来接收每个请求?