tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Schumacher <felix.schumac...@internetallee.de>
Subject Re: pure tomcat failover (no loadbalacing)
Date Wed, 27 Apr 2011 18:01:21 GMT
Am Mittwoch, den 27.04.2011, 10:21 +0200 schrieb Felix Schumacher:
> On Wed, 27 Apr 2011 09:58:45 +0200, Felix Schumacher wrote:
> > On Tue, 26 Apr 2011 21:24:16 +0100, Guillaume Favier wrote:
> >> Thanks for your answer Felix,
> > Well, after rethinking my original answer, I think you will have to
> > define two clusters:
> >
> >   worker.list=cluster1,cluster2
> >
>  ...
> >   worker.c2t2.type=ajp13
> >   worker.c2t2.host=localhost
> >   worker.c2t2.port=9002
> >   worker.c2t2.redirect=c1t1
>  Aargh, this should be
>    worker.c2t2.redirect=c2t1
Ok, last correction. redirect takes the name of the jvmRoute, not that
of the worker. So those two configuration entries should be

worker.c2t2.redirect=tomcat1
worker.c1t1.redirect=tomcat2

Regards
 Felix
> 
>  Bye
>   Felix
> >
> > You will have to set "jvmRoute" in your tomcats to "tomcat1" and 
> > "tomcat2".
> >
> > To mount your webapps, you can use
> >
> >   JkMount /ABC* cluster1
> >   JkMount /DEF* cluster2
> >
> > Regards
> >  Felix
> >
> >>
> >>
> >> On Tue, Apr 26, 2011 at 8:36 PM, Felix Schumacher <
> >> felix.schumacher@internetallee.de> wrote:
> >>
> >>> On Mon, 25 Apr 2011 09:40:59 +0100, Guillaume Favier wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I have 2 tomcat 5.5 server. Each of them handling a set (50+) of 
> >>>> third
> >>>> party
> >>>> webapps name /ABC* and /DEF*.
> >>>> Each of these webapp is quite memory consumming when started (more 
> >>>> than
> >>>> 300M).
> >>>> I would like all connection to ABC* webapps be handled by tomcat 
> >>>> server 1,
> >>>> and connection to webapps DEF* to be handled by tomcat server 2.
> >>>>
> >>>> My objectives are :
> >>>> * server 1 to be failover of server2 and server2 failover of 
> >>>> server1.
> >>>> * any webapp should be instanciate on only one server otherwise it 
> >>>> might
> >>>> trigger a memory overload
> >>>>
> >>>> So I set up my httpd.conf as is :
> >>>>
> >>>> JkWorkersFile "conf/worker.properties"
> >>>>  JkOptions +ForwardKeySize +ForwardURICompat
> >>>>
> >>>>
> >>>> and my worker.properties as is :
> >>>>
> >>>> worker.list = failover
> >>>>
> >>>> # ------------------------
> >>>> # template
> >>>> # ------------------------
> >>>> worker.template.type=ajp13
> >>>> worker.template.lbfactor=1
> >>>> worker.template.connection_pool_timeout=600
> >>>> worker.template.socket_timeout=1000
> >>>> worker.template.fail_on_status=500
> >>>>
> >>>> # ------------------------
> >>>> # tomcat1
> >>>> # ------------------------
> >>>> worker.tomcat1.reference=worker.template
> >>>> worker.tomcat1.port=9001
> >>>> worker.tomcat1.host=localhost
> >>>> worker.tomcat1.mount=/ABC* /ABC/*
> >>>>  worker.tomcat1.redirect=failover
> >>>>
> >>>> # ------------------------
> >>>> # tomcat2
> >>>> # ------------------------
> >>>> worker.tomcat2.reference=worker.template
> >>>> worker.tomcat2.port=9002
> >>>> worker.tomcat2.host=localhost
> >>>> worker.tomcat1.mount=/DEF* /DEF/*
> >>>>
> >>>               ^ is this correct or a typo?
> >>
> >>
> >> Sorry for the typo, you're right : it is in fact :
> >> worker.tomcat2.mount=/DEF* /DEF/*
> >>
> >>
> >>>  worker.tomcat2.redirect=failover
> >>>>
> >>>>
> >>>> # ------------------------
> >>>> # failover
> >>>> # ------------------------
> >>>> worker.failover.type=lb
> >>>> worker.failover.balance_workers=tomcat1,tomcat2
> >>>>
> >>>> The jvmroute is set in both server.xml.
> >>>>
> >>>> Previously I had put the jkMount directive in httpd.conf, but I 
> >>>> could'nt
> >>>> make the failover work. So I move it in the worker.properties.
> >>>> Tomcat doesn't seem to take into account the jkmount directive 
> >>>> from the
> >>>> worker.properties : a webapp is started indifrently on any server.
> >>>>
> >>> Tomcat starts all webapps it can find, not only those you specified 
> >>> by a jk
> >>> mount. Servlets will
> >>> only start, if you specify a startup order, or trigger a request to 
> >>> a
> >>> servlet.
> >>>
> >>>
> >> Ok, maybe I should clarify that :
> >> 1) tomcat starts all webapps
> >> 2) when a users connect to a specific webapp all objects are 
> >> instanciate and
> >> therefore the memory footprint drasticaly increase.
> >> I want to work on the second point : a webapp should be instanciate 
> >> only on
> >> one server.
> >>
> >>
> >>
> >>> So I don't think it is possible to prevent a webapp from starting 
> >>> in the
> >>> "failover" tomcat. But it
> >>> should be possible to limit its memory footprint.
> >>>
> >>
> >> I have done some optimisation here and already removed all shared 
> >> classes,
> >> jar, etc...
> >>
> >>
> >>> That said, I find it strange, that you define a special failover 
> >>> worker
> >>> instead of a direct redirect like
> >>>
> >>> worker.tomcat1.redirect=tomcat2
> >>> worker.tomcat2.redirect=tomcat1
> >>>
> >>>
> >> But that would mean (solution already tested) : I have to declare it 
> >> in the
> >> worker list, so when a server fail httpd will continue to try to 
> >> contact it
> >> instead of contacting the failover worker and find a another worker
> >> -> even if it works it would only work for 2 servers not for 3.
> >>
> >> thanks
> >> gui
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message