On Mon, 28 Oct 2002, Turner, John wrote:

>
> Can you explain how having Apache load balance to Tomcat helps in your
> scenario?
>
> As you've explained:
>
> N1: Apache + Tomcat
> N2: Apache + Tomcat
> N3: Apache + Tomcat
>
> Apparently, you have it setup so that your 3 Apaches get load-balanced
> traffic.
 yes

 My first goal is to acheive high-availability of apache and tomcat
servers and only then performance. I want Ni-Apache to route requests only
to Ni-Tomcat, but if I want to take down Ni-Tomcat for some reason, i want
Ni-Apache to start routing requests to the other two remote Tomcats.
Since if Ni-Apache has got a load-balanced request it should redirct it
to some Tomcat. So i don't want Apache to load balance to Tomcat.

 I tried to acheve this with Third setup,as explained below, but
did not suceed(see below)

> How then, does forcing N1-Apache to load balance to N1-Tomcat,
> N2-Tomcat, N3-Tomcat solve anything or increase your performance?
>
> Seems like you will just be spinning in circles...you have N1 deciding which
> N to send a request to, with failover, but then you have each N deciding
> which T to send a request to.  So a request comes in, N1 decides to send it
> to N2, but then the connector on N2 decides to send the request to the
> Tomcat on N3????  Yikes.

 Yes it's ugly, but because i did not suceed with Third setup i thought of
this (Second) setup, but i could not implement it also.

> I think you might be able to make a difference if you were to separate your
> Apache and Tomcat services, like this:
>
> N1: Apache
> N2: Apache
> N3: Apache
>
> T1: Tomcat
> T2: Tomcat
> T3: Tomcat
>
> 6 machines instead of 3.  Then, on each N, you have a JK load-balancing
> setup that includes T1, T2, and T3.  Maybe I am missing something, but I
> don't see what advantage load-balancing to Tomcat gives you when the Tomcats
> are on the same machines as the Apaches, especially if one or more of the
> Apaches goes down.   I also don't see what advantage you are getting making
> N1 do both load routing and simple request serving.
>
> As Bernd mentioned, a typical scenario would be:
>
> Internet -> Load Balancer -> Apache server -> Tomcat server
>
> All on separate boxes.  Right now you have everything on one box. I would
> think that if the Apache on N1 is down, it would be safe to assume that the
> Tomcat on N1 is down also, so it seems like a lot of work for not much
> benefit.

 Yes,if Ni is down. Or if i want to take down Apache Ni then i can
allow myself first to take down Tomcat Ni. But if i want to take down
Tomcat Ni , there is no way i'm going to take Apache Ni down too.

 The best solution for me is session replication in tomcat, as this solves
all my problems, but this is not implemented yet for tomcat 4.1, or i'm
wrong?

 Thanks.

> I'm not criticizing, just trying to understand what advantages you are
> getting with your environment.  Yes, the failover is nice, but so far I see
> no advantage to doing all of that load-balancing.  Have you done any load
> testing on this scenario?  I would think your time per request would
> actually go up...there is a lot of processing/decision-making going on just
> to serve a simple request.


> John
>
> > -----Original Message-----
> > From: Alexander Piavka [mailto:piavka@;cs.bgu.ac.il]
> > Sent: Monday, October 28, 2002 9:25 AM
> > To: Tomcat Users List
> > Subject: Re: load balancing with routing with mod_jk in cluster
> >
> >
> >
> >  Hi Brend,
> >
> > > Hi,
> > >
> > > it seems that you want to use mod_jk on the nodes as
> > balancer. We don't use it
> > > in that way. We have a load balancer in front of our nodes,
> > which has a standby
> > > balancer, if the first one goes down. If we want to get
> > your requested behavior,
> > > we had to configure this on our load balancer, not on the
> > nodes. This balancer
> > > knows nothing about apache, tomcat and mod_jk. So I don't
> > know how to manage it
> > > with mod_jk.
> > >
> > > I don't know how your config should work. Because if N1
> > routes to all other
> > > nodes and N1 goes down, how should your client know, that
> > he had to connect to
> > > N2? You need some logic in front of your cluster, that the
> > clients see your
> > > cluster as one big server. If you want something like
> > standby or hot standby you
> > > must implement this in the front logic, not on the nodes.
> > And I don't know if
> > > this is possible with jk1.
> > >
> > > Why do you limit the balancing to N1? Most of the work is
> > done in your servlets.
> > > The balancing is not so hard, that it will bring your node
> > down. If all nodes do
> > > balancing its no problem, if one node goes down.
> > >
> > > But may be I don't understand your scenario.
> >
> >  Hope now i'll be clear with my needs and problems.
> >  I have two levels of web clustering/balancing. First one
> > done with Linux Virtual
> > Server(lvs). The cluster has 3 nodes N1,N2,N3, which client
> > sees as one big server.
> > Each node has apache + tomcat. N1 behaves as the loadbalancer
> > and routes
> > the http requests between N1,N2,N3 apaches and it has
> > persistence for the
> > http connections. So N1 is the master router/balancer. Now
> > node N2 acts as
> > backup router/balancer. If N1 goes down, N2 detects this and activates
> > his backup router/balancer. This is implemented by Keepalived.
> > Also the http connections are replicated between N1 and N2, so client
> > does not loose connection if N1 goes down(unless it has connection to
> > apache on N1). Thus i have load balancing + high
> > availability. This setup
> > works ok.
> >
> >  Now the second level of clustering/balancing should be done between
> > apache servers and the tomcat servers on N1,N2,N3. I have 3
> > ideas how to
> > implenet this.
> >
> >  First: session replication between tomcat servers done with
> > JavaGroups Library
> > and Tomcat Session Replication Library writen by Filip Hanik. But this
> > library, for tomcat 4.1, is currently in development and no
> > code has beed
> > released for download yet.
> >
> >  Second: Setup two balancers/routers on N1 and N2 with
> > mod_jk1. By default
> > all apache servers will route requests to N1, and it will
> > loadbalance them
> > between N1,N2,N3 tomcats.If N1 goes down(or just apache on
> > N1), then N2
> > will get all request and loadbalance them between N2,N3(and N1 in case
> > only apache on N1 is down). -> This as i NOW understand can't be
> > implemented with mod_jk1. Maybe you have an idea how to implement this
> > without changing the first level clustering?
> >
> >  Third: apache on N'th node will route all requests to the
> > local tomcat
> > on the same N'th node. If local tomcat goes down, apache will start
> > routing requests to tomcats on other nodes which will be
> > session persistent.
> > I tried to implenent this in two ways:
> >
> > 1) For each node: I set jvmRoute on each tomcat server.xml
> > file to be dirrerent accross
> > all tomcat servers. On the local node for the local worker i set
> > local_worker=1 and for the remote workers local_worker=0.All
> > workers with
> > same lbfactor=1.
> >  The problem with this setup is: if local tomcat worker goes down
> > then mod_jk just makes rountrobin between the remote workers without
> > session persistance, since remote workers have local_worker=0.
> >
> > Since i need session persistance i tried another way:
> > 2) For each node: I set jvmRoute on each tomcat server.xml
> > file to be dirrerent accross
> > all tomcat servers. For all workers i set local_worker=1. But
> > since i want
> > local apache direct reques to the local worker only(when it is up).
> > I made for the local worker lbfactor=100 an for the remote
> > workers lbfactor=1.
> >  But it seems like mod_jk ignores the lbfactor then all
> > workers have local_worker=1.
> > I also tried lbfactor=0 for the remote workers, and other
> > values but this
> > did not change mod_jk behaviour.
> >  In all cases the old and new sessions were forwarded to one
> > SAME remote
> > worker. Then i played with taking down/up workers the mod_jk routing
> > would work in unreasonable ways. I could not even understand
> > the patters
> > of it's routing.(Then i was testing this i had only one local apache
> > running in the cluster, so that it will recieve all http
> > request in the
> > cluster, so this behavoiour has nothing to do fith the first
> > level routing/balancing).
> >
> >  If you have any ideas how to make the third setup work, or
> > you have other
> > ideas for setup i'll be very glad to hear.
> >  Thanks a lot.
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:tomcat-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:tomcat-user-help@;jakarta.apache.org>
>
> --
> To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail: <mailto:tomcat-user-help@;jakarta.apache.org>
>


 Piavlo XanderAl
 BGU CS Lab Evil Admin


--
To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@;jakarta.apache.org>

Reply via email to