Я работаю над springboot с Apache Camel, поэтому мой вопрос в том, как я могу написать код для использования Idempotentconsumer с репозиторием JDBC с использованием apache camel.
Идемпотентный потребитель с репозиторием JDBC Apache Camel
Ответы (1)
Все, что вам нужно сделать, это реализовать
#queryForInt(T key)
#insert(T key)
#delete(T key)
методы AbstractJdbcMessageIdRepository
из camel-sql
определите свой боб
<bean id="idempotentRepository"
class="yourpackage.YourJDBCIdempotentRepository">
<property name="dataSource" ref="your-datasource-bean-ref"/>
</bean>
добавить в маршрут
<route id="your-route">
<from uri="ftp:your-endpoint?idempotent=true&idempotentRepository=#idempotentRepository"/>
...
</route>
person
Sagar
schedule
14.11.2016
Будет ли использование стандартного JdbcMessageIdRepository работать в распределенной среде с несколькими узлами? Если я посмотрю на страницу Idempotent Consumer Camel (camel.apache.org/idempotent-consumer.html) Я вижу, что HazelcastIdempotentRepository работает в кластерной среде, но является ли это также случаем JdbcMessageIdRepository? Когда я смотрю на код этого компонента в GitHub, я не вижу никаких операторов блокировки (или чего-то еще), чтобы гарантировать синхронизированный доступ? Если бы кто-нибудь мог это подтвердить, было бы здорово!
- person Kim Zeevaarders; 20.05.2019
@KimZeevaarders - Думаю, тебе стоит попробовать. Существует некое уникальное ограничение, которое вы должны добавить в таблицу camel_messageprocessed (при использовании репозитория jdbc) - см. Doco. Хотя вроде работает хорошо.
- person gurpal2000; 14.03.2020