camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Camel Guy (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-7811) Does every route that starts with the Direct component have its own thread?
Date Sat, 13 Sep 2014 01:45:33 GMT

     [ https://issues.apache.org/jira/browse/CAMEL-7811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Camel Guy updated CAMEL-7811:
-----------------------------
    Description: 
All computing environments must promote decomposition if they are to withstand the ravages
of time. It is very convenient in Camel to define routes as subroutines. As a particular route
is reused considerably and is even copy and pasted across camel-based projects (this happens
especially when Spring DSL is used), perhaps the functionality should be refactored into a
Java class (easy) or a Camel component (harder). But that is a different subject. 

Again, routes are very convenient for encapsulating arbitrarily complex logic. However, the
downside to factoring a Camel program into reusable routes is that it appears that one Java
thread is dedicated to every route, even when they start with the "Direct" component, which
is commonly advertised in Camel literature as being the most efficient way for a route to
invoke another.

If it is true that every route that starts with the Direct component has its own thread, then
these routes consume thread resources and are also expensive to invoke because calling across
thread boundaries ultimately requires some form of synchronization.

I may be missing an important aspect of Camel messaging, such as in vs. in/out. I would like
see Camel's architects discuss this topic so that I can learn the best way to build complex
Camel programs.

  was:
All programming environments must support decomposition if they are to overcome the ravages
of time. It is very convenient in Camel to define routes as subroutines. As a particular route
is reused considerably and is even copy and pasted across camel-based projects (this happens
especially when Spring DSL is used), perhaps the functionality should be refactored into a
Java class (easy) or a Camel component (harder). But that is a different subject. 

Again, routes are very convenient for encapsulating arbitrarily complex logic. However, the
downside to factoring a Camel program into reusable routes is that it appears that one Java
thread is dedicated to every route, even when they start with the "Direct" component, which
is commonly advertised in Camel literature as being the most efficient way for a route to
invoke another.

If it is true that every route that starts with the Direct component has its own thread, then
these routes consume thread resources and are also expensive to invoke because calling across
thread boundaries ultimately requires some form of synchronization.

I may be missing an important aspect of Camel messaging, such as in vs. in/out. I would like
see Camel's architects discuss this topic so that I can learn the best way to build complex
Camel programs.


> Does every route that starts with the Direct component have its own thread?
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-7811
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7811
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: Camel Guy
>            Priority: Minor
>
> All computing environments must promote decomposition if they are to withstand the ravages
of time. It is very convenient in Camel to define routes as subroutines. As a particular route
is reused considerably and is even copy and pasted across camel-based projects (this happens
especially when Spring DSL is used), perhaps the functionality should be refactored into a
Java class (easy) or a Camel component (harder). But that is a different subject. 
> Again, routes are very convenient for encapsulating arbitrarily complex logic. However,
the downside to factoring a Camel program into reusable routes is that it appears that one
Java thread is dedicated to every route, even when they start with the "Direct" component,
which is commonly advertised in Camel literature as being the most efficient way for a route
to invoke another.
> If it is true that every route that starts with the Direct component has its own thread,
then these routes consume thread resources and are also expensive to invoke because calling
across thread boundaries ultimately requires some form of synchronization.
> I may be missing an important aspect of Camel messaging, such as in vs. in/out. I would
like see Camel's architects discuss this topic so that I can learn the best way to build complex
Camel programs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message