我目前正在设计一个移动应用程序,可以根据用户位置发送和读取消息到时间线。实际开发版本使用ActiveMQ来发送和使用消息,但它仍未完成,因此我倾向于在继续开发之前定义体系结构应如何避免未来的问题。我不确定这是否是正确的方法,但这是我的想法:使用消息队列的基于位置的消息系统的系统体系结构
- 每个用户都是将消息发送到其队列的生产者。队列名称可以是用户的唯一ID。
- 如果用户足够接近,用户可以订阅其他用户的队列。这涉及到类似的话题到一组用户队列。该队列应该是动态的,通过检索位于固定半径内的用户生成,该用户是消费者位置的圆圈的中心。每个用户都有它自己的主题或队列像这样(与Twitter的时间轴非常相似的概念)。这意味着每个用户队列将有多个消费者。
从客户端来说,我一直使用Objective-C stomp客户端作为队列的连接协议。
我的问题是,这是一个很好的方法来解决这个问题吗?我不确定用户订阅近用户是否可以使用ActiveMQ和主题。您对此时间表订阅问题有任何建议吗?另一方面,我很清楚每个用户都需要成为自己队伍的制片人,但也许我错了。
编辑
任何引用,链接,书等有关主题的详细信息,将不胜感激。
我一直在想这个,我有一个想法。我正在考虑使用主题而不是队列(我仍然需要处理持久化事件)来创建基于位置的聊天室,而不是直接用户通信。另外,为了取回离您最近的聊天室,您认为使用地理空间索引而不是PostgreSQL将这些房间存储在mongoDB中会更好吗? – amb