Not Sure if if should put a caveat at the top but: Willy Tarreau has written an excellent argument on behalf of Layer 7 Load Balancers :
Lori MacVittie has writen a re-butal as well: https://devcentral.f5.com/weblogs/macvittie/archive/2012/03/14/why-layer-7-load-balancing-doesnrsquot-suck.aspx
Layer 7 is part of the OSI model called the application layer. A typical example would be a web server or database server.
While load balancing hardware marketing execs get very excited about the fact that their product can magically scale your application by using amazing Layer 7 technology in the load balancer such as cookie inserts and tracking/re-writing. What they fail to mention is that any application that requires the load balancer to keep track of session related information within the communications stream can never ever be scalable or reliable.
But lets step back a minute and think about what we are trying to achieve with our load balancing solution.
Are we just looking for increasing the load or performance of our application by adding more application servers?
Or are we trying to achieve true scalability and true horizontal scaling to our application?