I have been in bed with CF since 1997. However, I have never
worked for a company that got so much traffic that we had to worry
about load balancing and fail over. Now, finally, I am working on a
personal project where clustering and fail-over would be just the
ticket. So I am getting to know CF8 Enterprise and clustering, but
have a few high-level questions perhaps one of you can help me
with. To make it easy I have bolded the actual questions. Sorry for
all the blah blah in between.
First, to help you understand my setup and what I'm trying to
accomplish: I want to test load-balancing and fail-over on the
grandest scale. So just the other day I sucessfully installed one
instance of multi-server CF8 Enterprise on 3 separate boxes (3
could be 100, but I started with 3), and clustered them. They are
all Linux/Ubuntu 7.10 on Apache2 and MySQL. Totally clean installs.
Fyi, these "boxes" are actually "instances" running on
Amazon's EC2 compute cloud, which make it rediculously cheap and
easy to test all kinds of stuff and just walk way without
consequence when something goes awry or I'm done testing. Since
they don't have the same subnet all I had to do was plug their IPs
into the jrun security config and, voila, CF cluster was talking to
them all. But I digress....
Box 1, let's call it, has my cluster, which contains 1) a
single instance of itself, 2) a single remote instance from Box 2,
and 3) a single remote instance from Box 3. I've made the
assumption that having multiple boxes is where the real benefit
from load balance and fail-over kicks in. E.g., if Box 1 goes down,
Box 2 and 3 will pick up, and vice versa.
Is that a correct assumption or understanding of how CF cluster
fail-over and load balance work?
Anyway, following Adobe's
instructions
here I then ran the Web Server Configuration Tool. When I ran
the config tool, it of course already recognized I had an Apache
site running called
[localhost:cfusion] Apache: /etc/apache2. So I clicked "Add"
anyway and selected my new cluster instance from the Jrun Server
drop-down (which contained both "cfusion" and my new instance),
left it set to Apache web server, put in my Apache config
directory, checked the box for "Configure server for CF8
applications" (I don't understand this part, but whatever), and hit
OK to restart Apache.
Now here's one of my actual questions: after all this it
comes back saying "
This web server is already configured for Jrun". 99% of the
time I'm sure folks will have a web server already running when the
install CF, so of course CF is going to configure it.
Why then did the instructions tell me to do this, or rather NOT
tell me to uninstall the original Apache config?
So at that point I ran config again, REMOVED the Apache web
server, and re-added it using my cluster (followed the exact same
instructions from above). This time it worked fine. But here's
where it gets interesting.
When I went back to my CF Admin for this box the Enterprise
Manager nav button/control panel for managing my instances and
clusters was gone!
Why?
I see at the top of CF Admin that the "Server:" is now
calling itself by my new cluster name. Okay, this makes sense I
guess because I just removed the original Apache config and told
the new Apache to use the Jrun cluster server instance to serve up.
Fine.
So now how am I supposed to manage my cluster if I can't see the
cluster manager?
My instances on the other two boxes still have their original
"cfusion" Apache configurations.
Wanting to get to my real goal, how do I now TEST that my
cluster (even though I can't see it in the CF Admin any more) will
actually fail over to the remote instances I included in it? And
how do I TEST load balancing?
Whatever I learn from this experiment I am going to scale up
to 100 servers and post back my results to this thread, so if
anyone can help me put the final pieces of this puzzle together, it
will assist me greatly!
Final two questions:
Is there any difference in the way CF8 handles clustering and
load balance compared to CF7 or even CF6.1? This info will help
me sort through the various blogs when looking for solutions.
Since Adobe is discontinuing support for Jrun, what will future
versions of CF use to accomplish clustering?
... View more