生产者/消费者队列模式中更快的生产者

gzszwxb4  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(459)

我们有一个mysql表,每天有大约500万条记录写入其中。
每个记录都需要一点时间来处理与之相关的元数据。所以我们有一个“生产者”进程,它将每个记录id发送到一个消息队列(sqs)。
然后我们有50个“消费者”下拉每个id并执行必要的处理任务。
这种模式很有效。然而,数据量仍在不断增长。我们的单个生产商再也赶不上插入到表中的数据量了。
我知道我们可以增加更多的消费者来加快处理速度。但是,在不发生id冲突的情况下,有什么好的策略可以加快生产者的速度呢?
更新
以下是表格结构:

id  int(10) AUTO_INCREMENT
name varchar(255)   
is_processed tinyint(1)
is_queued   tinyint(1)
created_at  timestamp
updated_at  timestamp
meta_data   text

我想有多个生产者运行,但不知道如何避免并发问题。

pkwftd7m

pkwftd7m1#

我最终使用了这种方法:数据库记录的多线程处理的最佳实践—这种方法将一组记录分派给多个使用者来获取。它比使用队列处理单个记录快得多。

相关问题