mongoose vs replica中的中间件设置用于发送电子邮件/短信等内容

时间:2017-11-13 13:49:16

标签: node.js mongodb

通过nodejs应用程序发送电子邮件,短信(用于帐户验证),通知bla bla ,哪一个更好的方法

据我所知,可以有两种方法。

  1. 执行保存后执行此功能...可以使用像保存后的猫鼬中间件...

  2. 借助mongodb中的副本设置模拟触发器并通过后台作业运行

  3. 我认为第二种方法更好,因为它将在后台由其他一些进程执行,但另一方面node.js 异步可能node.js处理这些类型聪明的东西..任何想法!

    简而言之:用户重新提交后发送短信电子邮件通知应由nodjs中间件或后台进程发送 根据我的知识,可以通过将监听器绑定到oplog

    来执行后台进程

2 个答案:

答案 0 :(得分:2)

在mongoDB中保存文档后触发短信/电子邮件服务请求的最佳方法是通过某个消息队列。

我建议使用 RabbitMQ 。它将从您的req / res循环中分离发送短信/电子邮件的过程。保存功能成功后调用它,它将以完全不同的过程添加到队列中。您只需返回save函数的成功结果,而无需等待消息worker的响应。

消息传递队列具有更多功能,如传递确认,可扩展性选项,apis和guis,用于管理和监视所执行操作的状态。

您可以在同一台服务器上进行设置,也可以根据流量部署在单独的服务器上。

答案 1 :(得分:0)

从MongoDB 3.6开始,您可以通过Change Streams完成此操作。它们是一种新功能API,可让您根据数据库中发生的事件触发各种操作。