| [[AsynchronousRoutingEngine-AsynchronousRoutingEngine]] |
| = Asynchronous Routing Engine |
| |
| *Since Camel 2.4* |
| |
| As of Camel 2.4 the asynchronous routing engine is back and kicking. + |
| All the xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns] |
| are supported as well a selected number of |
| Components: |
| |
| * xref:components::ahc-component.adoc[AHC] *Camel 2.8:* (only producer) |
| * AWS *Camel 2.11:* (only consumer) for S3 and SNS. |
| * xref:components::avro-component.adoc[Avro] *Camel 2.10:* (only producer) |
| * xref:components::cxf-component.adoc[CXF] *Camel 2.5:* (both consumer and producer) |
| * xref:components::cxfrs-component.adoc[CXFRS] *Camel 2.5:* (only consumer) |
| * xref:components::direct-vm-component.adoc[Direct-VM] *Camel 2.10.5/2.11.0:* (both consumer |
| and producer) |
| * xref:components::file-component.adoc[File] - (only consumer) |
| * xref:components::ftp-component.adoc[FTP] - (only consumer) |
| * xref:components::guava-eventbus-component.adoc[Guava EventBus] *Camel 2.10:* (only consumer) |
| * JBI (both consumer and producer) |
| * xref:components::jetty-component.adoc[Jetty] (both consumer and producer) |
| * xref:components::jgroups-component.adoc[JGroups] *Camel 2.10:* (only consumer) |
| * xref:components::jms-component.adoc[JMS] *Camel 2.5:* (only producer for |
| Request Reply messaging over JMS). *Camel 2.9:* |
| (consumer, if option `asyncConsumer=true` is used). |
| * xref:components::jms-component.adoc[JMS] *Camel 2.9:* (also consumer) |
| * NMR (both consumer and producer) |
| * xref:components::netty-component.adoc[Netty] only producer (*Camel 2.10:* also consumer) |
| * xref:components::seda-component.adoc[SEDA] (both consumer and producer) SEDA was mistakenly |
| in this list until November 3rd 2012. As of Camel 2.10.x, it still does |
| not leverage the Async Routing Engine, but support is planned for |
| http://camel.apache.org/camel-30-roadmap.html#Camel3.0-Roadmap-SEDA%2FVMcomponentstoleverageasyncroutingengine[Camel |
| 3.0]. |
| |
| * xref:components::timer-component.adoc[Timer] *Camel 2.12:* (only consumer) |
| |
| When we say a component is supported, that means, the component is |
| leveraging the asynchronous model. For example xref:components::jetty-component.adoc[Jetty] |
| uses continuations and the async HTTP client to be fully asynchronous |
| and non-blocked. That means no threads will ever be blocked while |
| waiting for a reply. |
| |
| In the future, additional Components will be |
| supported as well where it's applicable. |
| |
| [[AsynchronousRoutingEngine-Forcingtousesynchronousprocessing]] |
| == Forcing to use synchronous processing |
| |
| You can configure the endpoints with the option `synchronous=true` to |
| force using synchronous processing. For example when sending a web |
| service request using xref:components::cxf-component.adoc[CXF], the caller will wait for the |
| reply if `synchronous=true` was configured. Currently, this option is |
| supported by all the producers. If you don't want to let the |
| xref:components::cxf-component.adoc[CXF] consumer leverage the CXF continuation API to use the |
| asynchronous processing, you can also use this option `synchronous=true` |
| to disable it. The JBI and NMR components |
| are always asynchronous and don't support this option. |
| |
| [[AsynchronousRoutingEngine-Backgroundinformation]] |
| == Background information |
| |
| See Asynchronous Processing for |
| additional information and the concepts behind the asynchronous model. |