Thanks for the reply. Thats what I mean with collocation; if running in the same container, then exchange should be direct and therefore very fast.
The JBI standard says 'Note also that this processing is inherently asynchronous; provider and consumer never share a thread. This also helps keep components decoupled.' (page 6) But of cause this doesnt mean they cant share a process. I guess that then only thread switch is needed if running in the same container. gnodet wrote: > > Not sure where you read such things about two component instances > running in different processes. ServiceMix uses only one process and > the JBI makes no mention of processes, I guess you misunderstood > something here. > Not sure also where you grab your performance figures. > > Performances really depends on your use case: if you put two services > in the bus on the same ServiceMix container, inter-component > invocation will be amazingly fast (it's just about passing an object > from one component to the other without any serialization or such). > If one service invokes the other one by mean of HTTP or JMS or any > other protocol, the performances will surely drop by a big amount of > course. > So unless your services are deployed on two different containers, they > should use in-VM communication, so it will be fast enough. > > On Fri, Oct 24, 2008 at 5:53 PM, Drone42 <[EMAIL PROTECTED]> wrote: >> >> I'm new to JBI and ServiceMIx, but looking into it with great interest... >> however performance is an issue in the system I'm architecting and >> looking >> around the net I see that ServiceMix is fast, but not ammazingly fast. >> >> Typical deployments of the system I develop will contain choices on which >> components to group together on the same node, to improve performance and >> tradeoff with resource usage. >> >> Other middlewares, such as CORBA, provides performance optimizations by >> detecting collocations (i.e. that a consumer and a provider is running in >> the same component server / process). In this case the midleware will >> automatically replace any remote calls with a direct call, thereby >> removing >> the overhead of writing to and reading from the transport. >> >> Why doesn't ServiceSix do the same? I see that JBI even directly mention >> that two component instances will always run in separate processes. Why >> force this? >> >> I know; I can write a wrapper of the ServiceMix API myself and handle it. >> But I was thinking that there must be an excellent reason why this is not >> already done... or? >> -- >> View this message in context: >> http://www.nabble.com/Performance-Optimization-through-Collocation-tp20152693p20152693.html >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com > > -- View this message in context: http://www.nabble.com/Performance-Optimization-through-Collocation-tp20152693p20184426.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
