我想知道是否可以执行 HTTP POST 请求并忘记,不要等到收到响应。我不确定我应该使用 HTTP 组件还是 AHC,我想 AHC 更适合我的场景。
我正在使用 Apache Camel 2.12.1 和 Spring XML。如果可能,我该如何实现?
谢谢!
最佳答案
在 http4 和 ahc Camel 组件之间进行选择不是异步问题,而是重负载下的性能问题。换句话说,如果你的请求率很小或中等,http4 组件就足够了。
无论目标组件是什么,都有几种实现“请求即发即弃”的方法:
- 使用 ProducerTemplate#asyncSend 创建一个请求交换 http://camel.apache.org/async.html
- 使用 waitForTaskToComplete 设置为 Never 的 SEDA 组件 http://camel.apache.org/seda.html
在这两种情况下,请求都将在单独的线程中执行,因此调用者不会等待。
关于http - 使用 Apache Camel 做一个火而忘记 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20134860/