我希望在我的node.js应用程序中实现通知。我目前使用mysql来处理关系数据(用户,提交,评论等)。我只使用mongodb进行页面浏览。
要构建通知系统,从性能的角度来看,使用mongodb和MySQL会更有意义吗?
此外,向用户显示新通知的惯例是什么?起初,我以为我有一个通知图标,他们点击它并进行ajax调用以查找来自用户的所有新通知,但我想向用户显示该图标实际上是值得点击(使用一些不同颜色或带有Google Plus等新通知数量的气泡)。
我可以在用户登录时执行此操作,但这意味着用户只有在注销并重新登录时才会看到新通知(因为它会保存在会话中)。我应该轮询更新吗?我不确定这是否是推荐的方法,因为显示单个数字(或更多取决于通知数量)似乎有点过分。
答案 0 :(得分:1)
如果您正在使用节点,那么您可以推送'通过websockets向关联用户发送的通知。链接文档是一个众所周知的websocket引擎的示例,它具有良好的性能和良好的文档。这样,您的应用程序就可以根据您设置的简单查询向任何用户或用户组或每个人发送通知。
数据存储是一个不同的问题。通常,mysql在高可伸缩性的情况下确实性能不佳,而mongo通常具有更快的读取查询响应,但它取决于您希望使用的数据结构。如果您的数据是一个简单的键值结构而不需要关系数据,那么使用Redis等内存存储可能是最合适的。
如果您想要跟进并进行更多调查,This answer也会提供有关您问题的更多信息。