blob: f3dd607847539d976813c7885723d7764aaebae4 [file] [log] [blame]
[[ShouldIdeployCamelinsidetheActiveMQbrokerorinanotherapplication-ShouldIdeployCamelinsidetheActiveMQbrokerorinanotherapplication]]
= Should I deploy Camel inside the ActiveMQ broker or in another application
Whether you deploy the
xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
inside the ActiveMQ Broker or in a separate application
depends on your requirements.
[[ShouldIdeployCamelinsidetheActiveMQbrokerorinanotherapplication-AdvantagesofdeployingEIPinsidethebroker]]
== Advantages of deploying EIP inside the broker
* It is a single JVM so less moving parts and you're less likely to forget
to deploy something.
* If you are doing things like polling resources such as files,
databases and bridging them to queues or topics then its usually more
efficient to host in the broker; as there's less contention and there's
no network communication between the EIP rules and the message broker as
its all in the same JVM (so you can use the xref:components::vm-component.adoc[VM Transport]
to avoid network overhead.
[[ShouldIdeployCamelinsidetheActiveMQbrokerorinanotherapplication-AdvantagesofdeployingEIPinsideaseparateapplication]]
== Advantages of deploying EIP inside a separate application
* It is easier to deploy loads of JVMs containing the EIP routing rules to
get better load balancing.
* You can easily change your routing rules then stop/restart
applications without having to restart your broker. Having said that
since ActiveMQ supports it's not such a big deal to bounce the Broker now and again
to refresh routing rules. Note that at some point
https://issues.apache.org/activemq/browse/CAMEL-234[Camel will support auto-reload of routing rules on the fly without having to stop and reload the JVM]
so one day this won't be such a big benefit.