我有一个nodejs Web服务器,似乎有几个瓶颈阻止它充分发挥峰值负载的作用。
在高负载下,SQL和Elastic似乎都拒绝了我的请求和/或相当慢的性能。因此,我决定通过Logstash(用于弹性)和异步任务队列(用于SQL)来减少这些数据库上的负载
由于我的工作时间有限,所以我想知道是否可以仅使用异步任务队列(例如kue)来解决这些问题,因为我可以同时推送SQL和弹性日志。
我还需要实现logstash吗?还是异步队列解决了与logstash相同的问题。
答案 0 :(得分:1)
您可以尝试使用Async library's Queue功能,并尝试使其在子进程上运行,或者更好地在单独的服务器中作为队列微服务运行。这样,您可以将负载移动到另一个位置,从而提高应用服务器的性能。
答案 1 :(得分:0)
正如您提到的,您正在使用azure,我强烈建议使用他们的队列解决方案以及几个azure函数来处理从队列中读取和处理。
在将node.js和rabbitmq与节点工作者一起使用之前,我已经推出了自己的解决方案,因为该解决方案无法进入云中,从而从队列中读取并写入弹性搜索。
它可以工作并且功能强大,但是需要大量的配置和自定义代码,这是维护的噩梦。我会尽快将其删除。
使用azure服务的好处是:
AWS和Google Cloud可以说相同。