我想创建一个客户端可以放入请求的队列,然后服务器工作线程可以在有可用资源时将其拉出。如何创建一个有多个工作人员的队列?
我在探索如何使用Firebase存储库执行此操作,而不是使用外部队列服务,然后必须将数据注入Firebase。
考虑到安全性和验证工具,这里是什么,我心里有一个简单的例子:
- 用户按下请求转换为“排队”斗
- 服务器拉出请求,并删除它(如何确保只有一台服务器收到请求?)
- 服务器验证的数据,并从私人桶检索(或注入新的数据)
- 服务器推出数据和/或错误返回给用户的桶
的情况可能是将认证有用的一个简单的例子:
- 用户将认证请求到公共队列
- 他的登录/密码进入他的私人桶(只有他可以读/写的地方)
- 服务器拿起身份验证请求,检索登录名/密码,并针对私人buc进行验证KET只有服务器可以访问
- 服务器推送令牌到用户的专用桶
(当然还有在公共队列一些安全漏洞;我只是探索在这一点上)
一些其他的例子为使用:
- 只读状态队列(用户状态通过专用水桶相通,它的服务器写入的一个公共斗这是只读对于公众)
- 消息队列(消息通过用户发送,服务器决定其讨论水桶它们会落入)
所以问题是:
- 这是一个很好的设计,可以很好地整合到即将到来的安全计划中吗?有哪些正在探索的替代方法?
- 如何让所有服务器侦听队列,但只有一个接收每个请求?
@Michael_Lehenbauer感谢你的很好的解释。我很高兴听到有关身份验证选项的多样性 - 听起来不错。 – Kato
随机工作队列的想法很有趣;如果服务器脱机,我想它会造成一些难题。我想我们可以在服务器掉线的情况下删除队列,并让客户端负责跟踪他们的请求并将其委派给新的服务器。 – Kato
@Kato我检查了你的firebase队列库,但不知道它是否回答我的问题在这里:http://stackoverflow.com/questions/41979438/are-there-any-solution-support-this-single-concurrency-distributed - 队列。你有没有想过任何解决方案? – DucDigital