【发布时间】:2018-09-30 18:40:11
【问题描述】:
我正在将 RabbitMQ 构建到我们的解决方案中,我很好奇如何有效地处理和确认消息,同时仍然在消费者代码中执行“真正的”工作,时间范围为 5 到 10 秒。 (比samples 深入研究的工作更多)。
以上是我打算处理的一个示例。我的twitter.tweet_cmd_q 队列中的一条消息,其中包含消息正文中所需的所有参数,供消费者发出实际的 Twitter API 请求,并将这些结果保存到数据库中。
但是,我在这里遇到了两个问题:
- 我将在一分钟内处理数千条记录 - 在确认该消息之前我不可能花 5-10 秒。消费者代码在确认消息之前处理所有需要的工作是否“正常”? (即,我可以看到确认消息,并将要在另一个线程中完成的实际工作投入处理。 - 尽管这将需要它自己的“线程”管理形式,以便系统确实承受过多的负载)。
在这种涉及查询数据并将其保存到数据库的情况下,RPC calls 是否会让我受益?
处理这种可扩展性的最佳方法是创建更多的工作实例以进行循环处理吗?
【问题讨论】:
标签: architecture rabbitmq message-queue amqp