RabbitMQ使用者+ MySQL加载

时间:2016-02-24 00:02:57

标签: mysql performance rabbitmq amqp

我是AMQP和RabbitMQ技术的新手。我曾经习惯在mysql表中存储队列,但随着我的项目的成长,他们需要改变这种行为。安装和设置RabbitMQ完全没问题。我的一个项目处理大量的xml文件(每天数十亿行)。因此,我创建了虚拟生成器,它只是将XML文件拆分为元素(1 ....)并推送这些元素(每个xml文件数千个)以与特定的路由键交换。还行吧。我编写了一个示例worker,它应该处理这些元素并将数据保存到数据库中。但这是问题所在,因为我不能及时阅读一条消息。因此,我需要从数据库加载实际数据,将它们与XML元素进行比较,并将新数据逐个推送到我的表中。在10000行的文件中,我需要执行大约6个查询。这对MySQL性能来说并不是那么好。在基于Mysql队列的解决方案中,我只加载1000行的实际数据而不是一行,处理这些行并将它们标记为已处理。因此,只有少数MySQL查询加载了许多行的数据。像兔子这样基于AMQP的系统是否可以这样?加载1000条消息,立即处理它们并立即确认它们? RabbitMQ是为这样的行为而创建的,还是我需要使用其他技术?

由于

1 个答案:

答案 0 :(得分:0)

有可能,你的案子似乎正是this example。因此,如果您需要那么多,就可以启动1000个订阅者。