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