Используйте Apache Camel для ведения огня и забудьте HTTP-запрос
Я хотел бы знать, возможно ли запустить HTTP POST-запрос, забыть и не ждать, пока вы получите ответ. Я не уверен, стоит ли использовать HTTP-компонент или AHC, я думаю, AHC более удобен для моего сценария.
Я использую Apache Camel 2.12.1 и Spring XML. Если возможно, как я могу этого достичь?
Спасибо!
1 ответ
Решение
Выбор компонентов http4 и ahc Camel зависит не от асинхронности, а от производительности при большой нагрузке. Говорят иначе, если ваша частота запросов мала или средняя, достаточно компонента http4.
Есть несколько способов добиться "запросить и забыть", каким бы ни был целевой компонент:
- Используйте ProducerTemplate#asyncSend для создания обмена только по запросу http://camel.apache.org/async.html
- Используйте компонент SEDA с параметром waitForTaskToComplete, установленным в значение Никогда. Http://camel.apache.org/seda.html.
В обоих случаях запрос будет выполнен в отдельном потоке, поэтому вызывающая сторона не будет ждать.