【问题标题】:What database/technology to use for a notification system on a node.js site?node.js 站点上的通知系统使用什么数据库/技术?
【发布时间】:2023-03-20 18:49:01
【问题描述】:

我希望在我的 node.js 应用程序中实现通知。我目前将 mysql 用于关系数据(用户、提交、cmets 等)。我仅将 mongodb 用于页面查看。

要构建通知系统,使用 mongodb 与 MySQL 是否更有意义(从性能角度)?

另外,向用户显示新通知的惯例是什么?起初,我在想我应该有一个通知图标,然后他们点击它,它会执行 ajax 调用来查找来自用户的所有新通知,但我想向用户展示该图标实际上值得点击(或者有一些不同的颜色,或者像 Google Plus 那样带有新通知数量的气泡)。

我可以在用户登录时执行此操作,但这意味着用户只会在他们注销并重新登录时看到新通知(因为它会保存在他们的会话中)。我应该轮询更新吗?我不确定这是否是推荐的方法,因为显示一个数字(或更多取决于通知的数量)似乎有点过头了。

【问题讨论】:

    标签: mysql node.js mongodb notifications


    【解决方案1】:

    如果您使用的是节点,那么您可以通过websockets 向连接的用户“推送”通知。链接的文档是一个众所周知的 websocket 引擎的示例,它具有良好的性能和良好的文档。这样,您的应用程序就可以根据您设置的简单查询向任何用户或用户组或每个人发送通知。

    数据存储是一个不同的问题。一般来说,mysql在高扩展性的情况下性能确实很差,而mongo的读取查询响应通常比较快,但这取决于您希望使用什么数据结构。如果您的数据是简单的键值结构,而实际上不需要关系数据,那么也许使用诸如Redis 之类的内存存储将是最合适的。

    This answer 也包含有关您的问题的更多信息,如果您想跟进和调查更多信息。

    【讨论】:

    • 完美,我将使用 socket.io 和 mongo。谢谢!
    猜你喜欢
    • 2013-04-30
    • 2015-06-02
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多