我在网络应用程序中将 node.js 与 aerospike 结合使用。 当用户发帖、提及或关注时,我必须按照时间表或/和通知进行工作。 我想在 Node.js 向客户端发送响应后运行这些作业。
我运行有关任务管理器和消息代理的内容,但我不确定是否理解
所以我的问题是因为node.js中的操作是异步的,而aerospike是同步的和多线程的->将响应发送到客户端然后使用aerospike进行这些作业是一个坏主意吗(或者我可能会因为复制而丢失一些东西) 、云等)
或者我被迫使用 RabbitMQ 之类的?
最佳答案
node.js 的异步性不会干扰 Aerospike 服务器的同步性。这只是客户端的行为以及 API 的设计方式。它不会影响服务器端的功能。一些 Aerospikes 客户端(如 java)提供同步和异步 API。
来到问题的后半部分,您似乎正在考虑先回复客户,然后在 Aerospike 上触发工作。这不是 aerospike 特有的,但我看到的唯一风险是您可能已经向客户端响应了“成功”消息,但服务器端作业可能会因任何原因而失败(超时、内存/磁盘已满、网络故障、服务器关闭等)。如果您可以接受此风险,我认为没有任何其他重大问题。
关于node.js - 使用 aerospike 和 node.js 的任务管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660085/