You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@synapse.apache.org by ajmera <Ra...@Intuit.com> on 2009/03/26 02:41:02 UTC
Recommended deployment model for Synapse
What's the recommended deployment model for Synapse? I've a webservice hosted
on tomcat container and would like to mediate to it with Synapse such that
only Synapse end point is accessible to the callers. I read that Synapse is
optimized for handling large number of concurrent connections. If I deploy
synapse and webservice on the same jvm (tomcat), would that any way limit
Synapse ability to handle a large number of concurrent connection?
Has any one tried to deploy Synapse and webservice in the same package (war)
file? What was your experience with that?
--
View this message in context: http://www.nabble.com/Recommended-deployment-model-for-Synapse-tp22714630p22714630.html
Sent from the Synapse - User mailing list archive at Nabble.com.
Re: Recommended deployment model for Synapse
Posted by "Asankha C. Perera" <as...@apache.org>.
Hi Andreas
> I wrote some documentation and a preview is available here:
>
> http://people.apache.org/~veithen/synapse/deployment.html
>
This is good. We could extend this later with information on how to tune
a production deployment, configure SSL options etc..
cheers
asankha
--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org
http://esbmagic.blogspot.com
Re: Recommended deployment model for Synapse
Posted by Andreas Veithen <an...@gmail.com>.
I wrote some documentation and a preview is available here:
http://people.apache.org/~veithen/synapse/deployment.html
Any comments are welcome.
Andreas
On Thu, Mar 26, 2009 at 10:58, Asankha C. Perera <as...@apache.org> wrote:
>
>>> I can't understand why so many people seem to ask this question :-) ..
>>>
>>
>> Probably because it's not documented... I started to put together some
>> basic documentation about the different ways to deploy Synapse. Give
>> me a few days to finish this and check it in, then you can review and
>> complete it.
>>
>
> Sounds great.. thanks!
>
> asankha
>
>
> --
> Asankha C. Perera
> AdroitLogic, http://adroitlogic.org
>
> http://esbmagic.blogspot.com
>
>
>
>
>
Re: Recommended deployment model for Synapse
Posted by "Asankha C. Perera" <as...@apache.org>.
>> I can't understand why so many people seem to ask this question :-) ..
>>
>
> Probably because it's not documented... I started to put together some
> basic documentation about the different ways to deploy Synapse. Give
> me a few days to finish this and check it in, then you can review and
> complete it.
>
Sounds great.. thanks!
asankha
--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org
http://esbmagic.blogspot.com
Re: Recommended deployment model for Synapse
Posted by Andreas Veithen <an...@gmail.com>.
> I can't understand why so many people seem to ask this question :-) ..
Probably because it's not documented... I started to put together some
basic documentation about the different ways to deploy Synapse. Give
me a few days to finish this and check it in, then you can review and
complete it.
Andreas
Re: Recommended deployment model for Synapse
Posted by "Asankha C. Perera" <as...@apache.org>.
Hi Rakesh
> What's the recommended deployment model for Synapse? I've a webservice hosted
> on tomcat container and would like to mediate to it with Synapse such that
> only Synapse end point is accessible to the callers. I read that Synapse is
> optimized for handling large number of concurrent connections.
You could very well run both Synapse and your web service on Tomcat on
the same machine. Synapse manages to handle a large number of concurrent
connections since its using a non-blocking http/s implementation. The
NIO performance can be tuned best on a Linux machine, so thats what I
would recommend, and thats whats mostly used in production. People run
Synapse on other Unix systems such as SunOS on production, and run it
also on mainframes. I would not recommend an installation on Windows
though. Depending on the load expected, the CPU cores on the system etc,
we can tune the performance, but you should also tune the OS to allow
Synapse to use the available TCP sockets and file handles etc.
To prevent users from talking direct to Tomcat, the easiest would be to
make Tomcat only accept connections on the local interface :-) .. and
make Synapse talk over it to Tomcat. Of course you could also do NW
access control to prevent access over the other ports etc.
> If I deploy synapse and webservice on the same jvm (tomcat), would that any way limit
> Synapse ability to handle a large number of concurrent connection?
>
In a way - could be. How many concurrent users are we talking about? and
how long does each request take on average to complete? How many Tomcat
instances are you going to run on the same machine, and get Synapse to
load balance between them etc? For one thing, running more processes on
the same machine would limit its performance (memory/CPU) etc, but also
the TCP sockets on a machine is limited to around ~64K. If you are able
to use HTTP 1.1 keep alive connections and chunking, the HTTP
performance could be optimized, to efficiently use only a few TCP
connections underneath.
> Has any one tried to deploy Synapse and webservice in the same package (war)
> file? What was your experience with that?
>
I can't understand why so many people seem to ask this question :-) ..
First of all the Synapse WAR deployment is just a way of packaging. It
does not use a servlet container at all - except to start itself. All
http/s happens over its optimized NIO transports and not over the
servlet engine - which is inherently blocking. Personally I prefer hard
modularity between your ESB and the rest of the services, so that the
ESB can continue to function, even in the face of more common failures
in other systems
cheers
asankha
--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org
http://esbmagic.blogspot.com