我正在学习Erlang,而且我来自一个优秀的Python背景。我在项目中使用了RabbitMQ和Celery。
虽然Erlang具有非常强大的消息传递和并发功能,但使用RabbitMQ和Erlang有什么好处? 我错过了这一点吗?为什么我不应该依赖Erlang的原生功能而不是在我的项目环境中添加另一层复杂性?
答案 0 :(得分:7)
如果你正在对erlang进行erlang通信,你不需要像rabbitmq那样的东西。
如果您需要以崩溃弹性的形式提供稳健性,了解作业是否已启动或已完成,能否让后端流程失效并且不必担心失去工作等等,那么rabbitmq会有道理。
另外,如果你想在多种语言之间进行通信 - erlang和ruby或node.js,c#,c ++,python等,那么rabbitmq就可以轻松实现。
使用rabbitmq,您将获得一个分离的分布式系统,使用代理与无代理的分布式系统(https://www.rabbitmq.com/blog/2010/09/22/broker-vs-brokerless/)
总是这不是一个“更好”的事情。但另一件事。经纪人和无经纪人都是有效的。