我们有一个iOS应用程序,它具有聊天功能。目前它适用于长轮询。现在我们正在尝试修改它以使用套接字。当谈到socket时,我们已经开始进行研究,似乎最好的选择之一是使用带有socket.io的nodejs。然后我们使用redis pub / sub来管理消息传递和存储。
在对redis进行一些研究之后,推荐的用法表明存储的数据应该适合内存。但是,我们有一个很大的数据库。我们想存储整个聊天记录。所以我们已经开始计划使用redis作为缓存数据库,它将存储在线用户的聊天记录(可能不是全部),并在从redis离线到mongodb / simpledb之后写入实际的对话(或者立即将它们都写入)。
总而言之,我们即将决定使用nodejs和redis pub / sub来传递消息,将redis用作缓存数据库,使用mongodb来存储整个会话。
您如何看待设计?这可以接受吗?或者,如果您有更好的建议方式,可以再解释一下吗?
提前致谢。
答案 0 :(得分:3)
对于聊天系统,你的想法很棒。如果你认为你将达到一百万用户,那就去吧。还要考虑可用性 - 您的系统将如何处理机器故障?