Я собираюсь использовать AMQP, чтобы разрешить асинхронно передавать распределенную коллекцию машин в центральное местоположение. Идея состоит в том, чтобы помещать сообщения в очередь и позволить центральному регистрирующему объекту обрабатывать очередь в несвязном порядке; «Процесс» - просто создать или обновить строку в таблице базы данных.
Проблема, которую я ожидаю, заключается в влиянии дрожания сети в процессе очереди сообщений - что произойдет, если update
случайно окажется перед insert
, потому что время между двумя выдаваемыми сообщениями меньше, чем джиттер сети?
Читая спецификацию AMQP, кажется, что я мог бы просто применить более высокий приоритет к insert
s, чтобы они пропускали очередь и обрабатывались первыми. Но, по-видимому, это применимо только в том случае, если в брокере действительно существует очередь, которую нужно пропустить. Есть ли способ наложить на брокера буфер или задержку, чтобы поглотить этот джиттер и позволить установить приоритет перед передачей сообщений потребителю (ям)?
Или я должен идти по маршруту повторного секвенсора , как ActiveMQ предлагает ?