I am looking at a number of possible options for load-balancing.
So far, I am constrained to the following options:
DNS server load-balancer, balancing to a cluster of tomcat servers, with terracotta for session replication. Pros - don't have to buy new kit. Cons - DNS lb can keep directing to a broken server.
Hardware load-balancer, direct to cluster of tomcat servers. Pros - could have second box for failover lb. Cons - expense.
Apache server load-balancer. Pros - apache's lb polls for broken servers. Cons - apache server is single point of failure, plus need to buy another server.
Are there any other options I should consider?
Update: Thanks for all the answers so far +1's all round. Not accepting an answer yet, to keep more ideas coming.