你好真棒的Erlang社区!
我正在制作一个包含客户端和后端的小项目。 (复杂..对吧?):)
我在erlang中制作它。
客户端和后端将是两个独立的进程,我想知道是否需要(或者我应该)使用某种消息队列来让它们进行交互?
我知道我可以让他们使用他们的PID进行交互并使用“!”发送消息操作
我想我想说的是我在努力寻找这个问题的答案:
“为什么或何时应该在Erlang中使用RabbitMQ,ZeroMQ等消息队列”?
答案 0 :(得分:5)
当您需要本机消息传递工具无法提供的内容时,您希望使用消息传递库。
这些包括:
答案 1 :(得分:2)
当你需要解耦我系统的不同层时,我会选择一个消息传递组件。此外,消息传递组件允许您能够根据标题对主题/扇出/路由等消息/请求执行不同的集成模式... 消息传递系统也用于可扩展性,因此您可以在同一队列中同时运行同一进程的多个实例。
我想提到的最后一件事是RabbitMQ是一个消息代理,但ZeroMQ不是,它是一个消息库。
答案 2 :(得分:1)
如果您可以牺牲性能的可靠性,请使用ZeroMq。
如果您需要可靠性(消息持久性等),并且可以放弃一些性能,请使用像RabbitMq这样的代理解决方案。