我的服务有多个用 Node.js 编写的前端和用 Ruby 编写的工作线程。现在的问题是如何让它们进行通信?我需要维护动态工作人员池来处理负载(当负载上升时产生更多工作人员)并且消息相当大~2-3M,因为我将图像发送给用户通过 Node.js 前端上传的工作人员。因为我想要很好的扩展,所以我考虑了一些排队解决方案,但我没有找到任何现有的解决方案(或误解的指南)来提供:
也许我的做法是错误的?也许我不应该使用队列,而应该使用其他方式?或者有一些符合上述要求的排队解决方案吗?
毫无疑问,您需要一个队列来扩展,并且您可以监视该队列以产生“工人”。
Apache ActiveMQ 非常强大并且支持 REST 协议。 Ruby 客户端也可用于访问队列。