Короткий ответ : Да (в таблице БД с первичным ключом)
Длинный ответ : я попробовал сегодня (используя плагин Parallel Controller JMeter ) и заметил, что если я не установлю первичный ключ в таблице CAMEL_MESSAGEPROCESSED
я получаю повторяющиеся записи при запуске нескольких одновременных HTTP-запросов. Однако, если я добавлю к этой таблице первичный ключ (что также рекомендовано документами верблюда), потребитель idempotent
будет работать так, как ожидается.
Можно ли с уверенностью сказать, что о синхронизации заботится механизм первичного ключа на столе?
Я имею в виду, только один Request-thread
успешно добавляет строку в таблицу CAMEL_MESSAGEPROCESSED
, и, как я заметил во время моих тестов, остальные Request
помечены как дубликаты
Camel (exchangeProperty(Exchange.DUPLICATE_MESSAGE)=true)