gpt4 book ai didi

Scala 与 Rabbit MQ 的集成

转载 作者:行者123 更新时间:2023-12-01 06:30:17 24 4
gpt4 key购买 nike

我有一个需要与 RabbitMQ 集成的后端 Scala 应用程序。后端 Scala 应用程序异步执行长时间运行的任务。执行任务的消息由 Web 客户端排队进入 RabbitMQ。然后后端应用程序使用这些消息中的每一个,执行相应的长时间运行的任务。

Scala 应用程序是否应该直接使用来自 RabbitMQ 的消息并简单地使用 Futures 处理相应的任务?还是使用 Akka Actors 从 RabbitMQ 接收这些消息,然后执行长时间运行的任务更好?

每种方法的优缺点是什么?

最佳答案

Future对于结合 RabbitMQ Java 客户端的用例来说,s 听起来像是一种更简单的方法。

我选择 Actor 与 future 的模型是:更喜欢 future ,当我觉得我有一个很好的用例时切换到 Actor (一些例子见 Good use case for Akka)。例如,如果您试图分治批处理工作负载(如链接的答案所述),参与者可能会很好地满足您的目的。

使用下面的 RabbitMQ Java 示例作为起点,修改以在 futures 中工作,以便轮询工作队列的线程不会被阻塞。我提供了工作队列和 RPC 示例的链接,以防您需要返回一些响应(RabbitMQ 很擅长这种情况,因为它内置了 correlationId 的概念)。

Java RabbitMQ 示例:

Work Queues

Remote procedure call (RPC)

关于Scala 与 Rabbit MQ 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com