2016-02-24 3 views
0

Я новичок в технологии AMQP и RabbitMQ. Я использовал для хранения очередей в таблицах mysql, но по мере роста моих проектов им нужно изменить это поведение. Установка и настройки RabbitMQ были в порядке. Один из моих проектов обрабатывает много XML-файлов (миллиарды строк в день). Итак, я создал фиктивного производителя, который просто разбил XML-файл на элементы (1 ....) и нажимал эти элементы (тысячи каждого xml-файла) для обмена с определенным ключом маршрутизации. Хорошо. Я написал одного примерного работника, который должен обработать эти элементы и сохранить данные в базе данных. Но это проблема, потому что я не могу больше читать это одно сообщение. Таким образом, мне нужно загрузить фактические данные из базы данных, сравнить их с элементом XML и поместить новые данные в таблицу один за другим. В файле со 10000 строками мне нужно выполнить около 6 запросов. И это не так хорошо для производительности MySQL. В решении на основе очереди Mysql я просто загружаю фактические данные за 1000 строк вместо одного, обрабатывая эти строки и помеченные как обработанные. Итак, там, где всего несколько запросов MySQL, которые загружали данные для многих строк. Возможно ли подобное в системах на основе AMQP, таких как кролик? Загрузите 1000 сообщений, обработайте их сразу и запустите их сразу? Был ли RabbitMQ создан для такого поведения, или мне нужно использовать другую технологию?RabbitMQ потребитель + MySQL нагрузки

Благодаря

ответ

0

Это возможно, ваше дело, кажется, именно this example. Так что просто запустите 1000 подписчиков, если вам это нужно.

+0

Увольнение 1000 подписчиков не помогает, они разделены процессами, и я не могу передавать данные от одного абонента другому абоненту. И с фактическими настройками 1000 сообщений обработки подписчиков один за другим закроют mysql. –

Смежные вопросы