SlideShare a Scribd company logo
1 of 17
Introduction to Web Application
                        Clustering




  Piyush Katariya
  pkatariya@equalexperts.com
© Equal Experts UK Ltd 2011    www.equalexperts.com   1
The scaling challenge

        • NFR Now
                     • userLoad = 50+
                     • Single jvm
                     • 3 Ghz processor, single core
                     • 2+ GB RAM
        • NFR Expected
                     • userLoad = 500+


© Equal Experts UK Ltd 2011           www.equalexperts.com   2
Scaling UP
      • AKA Vertical clustering
      • Moore’s law
      • Taking advantage of processor power and memory
      • Multiple app instances on same machine
               Do take care of
                        Cache
                        Static variables, singletons
                        User Sessions
      • Scaling your code
      • Cannot combat hardware failure

© Equal Experts UK Ltd 2011                     www.equalexperts.com   3
Load Balancing

        • Algorithms
                 Round robin (Simple, Weighted, Dynamic)
                 Quickest
                 Least Connection
                 Hybrid
        • Software Vs Hardware Load Balancers



© Equal Experts UK Ltd 2011       www.equalexperts.com      4
Apache Server
                                                        Tomcat Cluster 1


                   N/W
                                                        Tomcat Cluster 2




© Equal Experts UK Ltd 2011   www.equalexperts.com                         5
The challenge continues..

        • NFR Now
                     • userLoad = 500+
                     • two jvm’s
                     • Multicore processor
                     • 8+ GB RAM
        • NFR Expected
                     • userLoad = 5000+
                     • Better response time

© Equal Experts UK Ltd 2011          www.equalexperts.com   6
Scaling Out

        • AKA Horizontal Clustering
        • First step towards HA
        • Taking advantage of low cost commodity hardware
        • Multiple Nodes/Machines
          Again do take care of
              Cache
              Static variables, singletons
              User Sessions
        • Can combat hardware failure


© Equal Experts UK Ltd 2011      www.equalexperts.com       7
N/W




                                Apache Server




            Node 1            Node 2                       Node 3   Node 4




© Equal Experts UK Ltd 2011             www.equalexperts.com                 8
The “Perfection” only exists
                  in dictionary
        • Prefer “scaling out” over “scaling up”
        • Tune your thread pools and db connection pools
        • Mind your loggers
        • Cache’s == Steroids for web-app
        • High intra-cluster bandwidth
        • Seek for RIA app design
        • gzip your HTTP responses
        • Continuous monitoring is a must

© Equal Experts UK Ltd 2011   www.equalexperts.com         9
Its not only about web!

        • Scientific problem computing
        • Space objects behavior simulations
        • Multiplayer games
        • Real motion graphics
        • MapReduce




© Equal Experts UK Ltd 2011      www.equalexperts.com   10
Workshop Time !

        • Pre- requisites
                      Apache Tomcat 7
                      Apache 2.x
                      mod-jk module for Apache




© Equal Experts UK Ltd 2011               www.equalexperts.com   11
The Workshop Problem ?
           “Create your private vertical cluster on your
                 local machine using two tomcat instances
                 front ended with Apache HTTP server which
                 will have load balancer employing Weighted
                 Round Robin policy ”




                                              Apache Server
                                                              Tomcat Cluster 1


                     N/W
                                                              Tomcat Cluster 2




© Equal Experts UK Ltd 2011      www.equalexperts.com                            12
Get started
             Install Apache HTTP Server 2.x
             Create a folder named “cluster”
             Create two instances(physical) of tomcat by extracting given zip folder twice in
              “cluster” folder and name them “<YourName>1”, “<YourName>2”
             conf/server.xml
                     •        Comment /Remove connector tag with “HTTP/1.1” protocol
                     •        Cluster I - cluster/<YourName>1
                               Server port – 8005 , AJP/1.3 Connector Port - 8009
                     •        Cluster II – cluster/<YourName>2
                               Server port – 8105 , AJP/1.3 Connector Port - 8109
                     •        Add attribute jvmRoute=“<Your name>1” in Engine tag element
             Add <distributable /> tag in web.xml for .war under webapps folder

© Equal Experts UK Ltd 2011                         www.equalexperts.com                         13
Continue…
         Copy mod_jk.so to apache/modules folder
         apache/conf/httpd.conf
                      “LoadModule jk_module modules/mod_jk.so”
                      JkWorkersFile confworkers.properties
                      JkMount /examples/jsp/* bal1
                      JkMount /jkstatus/ stat1




© Equal Experts UK Ltd 2011              www.equalexperts.com     14
The last touch
             apache/conf/workers.properties

                     worker.<YourName>1.type=ajp13

                     worker.<YourName>1.host=localhost

                     worker.<YourName>1.port=8009

                     worker.<YourName>1.lbfactor=10

                     worker.<YourName>2.type=ajp13

                     worker.<YourName>2.host=localhost

                     worker.<YourName>2.port=8109

                     worker.<YourName>2.lbfactor=10

                     worker.bal1.type=lb

                     worker.bal1.stickysession=1

                     worker.bal1.balanceworkers=<YourName>1,<YourName>2

                     worker.list=bal1,stat1

                     worker.stat1.type=status

                     worker.stat1.css = /status.css


© Equal Experts UK Ltd 2011                              www.equalexperts.com   15
So did you live
                      the moment ?



© Equal Experts UK Ltd 2011   www.equalexperts.com   16
© Equal Experts UK Ltd 2011   www.equalexperts.com   17

More Related Content

What's hot

Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSBrett McLain
 
JVM Memory Management Details
JVM Memory Management DetailsJVM Memory Management Details
JVM Memory Management DetailsAzul Systems Inc.
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cBruno Borges
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServiceJosh Padnick
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know Howaragavan
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksJignesh Shah
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAshokkumar T A
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGAlan Renouf
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applicationspkoza
 
HotLink DR Express
HotLink DR ExpressHotLink DR Express
HotLink DR Expressdean1609
 
Distributed automation selcamp2016
Distributed automation selcamp2016Distributed automation selcamp2016
Distributed automation selcamp2016aragavan
 
Performance of Microservice frameworks on different JVMs
Performance of Microservice frameworks on different JVMsPerformance of Microservice frameworks on different JVMs
Performance of Microservice frameworks on different JVMsMaarten Smeets
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Alexander Lisachenko
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 SystemsDavid Newman
 
Deploy, Scale and Manage your Application with AWS Elastic Beanstalk
Deploy, Scale and Manage your Application with AWS Elastic BeanstalkDeploy, Scale and Manage your Application with AWS Elastic Beanstalk
Deploy, Scale and Manage your Application with AWS Elastic BeanstalkAmazon Web Services
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Haim Yadid
 
Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8AppDynamics
 

What's hot (20)

Scaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWSScaling a MeteorJS SaaS app on AWS
Scaling a MeteorJS SaaS app on AWS
 
JVM Memory Management Details
JVM Memory Management DetailsJVM Memory Management Details
JVM Memory Management Details
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know How
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW Locks
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
 
Splunk for JMX
Splunk for JMXSplunk for JMX
Splunk for JMX
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
 
HotLink DR Express
HotLink DR ExpressHotLink DR Express
HotLink DR Express
 
Distributed automation selcamp2016
Distributed automation selcamp2016Distributed automation selcamp2016
Distributed automation selcamp2016
 
Performance of Microservice frameworks on different JVMs
Performance of Microservice frameworks on different JVMsPerformance of Microservice frameworks on different JVMs
Performance of Microservice frameworks on different JVMs
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
Deploy, Scale and Manage your Application with AWS Elastic Beanstalk
Deploy, Scale and Manage your Application with AWS Elastic BeanstalkDeploy, Scale and Manage your Application with AWS Elastic Beanstalk
Deploy, Scale and Manage your Application with AWS Elastic Beanstalk
 
Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions Java Enterprise Edition Concurrency Misconceptions
Java Enterprise Edition Concurrency Misconceptions
 
Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8
 

Similar to Introduction to Web Application Clustering

EXPERTALKS: Nov 2012 - Web Application Clustering
EXPERTALKS: Nov 2012 - Web Application ClusteringEXPERTALKS: Nov 2012 - Web Application Clustering
EXPERTALKS: Nov 2012 - Web Application ClusteringEXPERTALKS
 
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo RamassoServer Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo RamassoJUG Genova
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...Frank Munz
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
Web Server/App Server Connectivity
Web Server/App Server ConnectivityWeb Server/App Server Connectivity
Web Server/App Server Connectivitywebhostingguy
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dbaOsama Mustafa
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
 
Running your Java EE 6 applications in the clouds
Running your Java EE 6 applications in the clouds Running your Java EE 6 applications in the clouds
Running your Java EE 6 applications in the clouds Arun Gupta
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Finaljucaab
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014Joelith
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance TuningChristian Posta
 

Similar to Introduction to Web Application Clustering (20)

EXPERTALKS: Nov 2012 - Web Application Clustering
EXPERTALKS: Nov 2012 - Web Application ClusteringEXPERTALKS: Nov 2012 - Web Application Clustering
EXPERTALKS: Nov 2012 - Web Application Clustering
 
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo RamassoServer Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
Server Day 2009: Oracle/Bea Fusion Middleware by Paolo Ramasso
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
 
Webapplication Load Balancing
Webapplication Load BalancingWebapplication Load Balancing
Webapplication Load Balancing
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
Web Server/App Server Connectivity
Web Server/App Server ConnectivityWeb Server/App Server Connectivity
Web Server/App Server Connectivity
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dba
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
Running your Java EE 6 applications in the clouds
Running your Java EE 6 applications in the clouds Running your Java EE 6 applications in the clouds
Running your Java EE 6 applications in the clouds
 
Weblogic
WeblogicWeblogic
Weblogic
 
Flume and HBase
Flume and HBase Flume and HBase
Flume and HBase
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Final
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014
 
Introduction to weblogic
Introduction to weblogicIntroduction to weblogic
Introduction to weblogic
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance Tuning
 
Performance stack
Performance stackPerformance stack
Performance stack
 

More from Piyush Katariya

Concurrency, Parallelism And IO
Concurrency,  Parallelism And IOConcurrency,  Parallelism And IO
Concurrency, Parallelism And IOPiyush Katariya
 
Handling the growth of data
Handling the growth of dataHandling the growth of data
Handling the growth of dataPiyush Katariya
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsPiyush Katariya
 
My inspirations and learned lessons
My inspirations and learned lessonsMy inspirations and learned lessons
My inspirations and learned lessonsPiyush Katariya
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)Piyush Katariya
 
Rise of the Single Page Application
Rise of the Single Page ApplicationRise of the Single Page Application
Rise of the Single Page ApplicationPiyush Katariya
 

More from Piyush Katariya (9)

Concurrency, Parallelism And IO
Concurrency,  Parallelism And IOConcurrency,  Parallelism And IO
Concurrency, Parallelism And IO
 
Handling the growth of data
Handling the growth of dataHandling the growth of data
Handling the growth of data
 
Expression problem
Expression problemExpression problem
Expression problem
 
JavaScript for Enterprise Applications
JavaScript for Enterprise ApplicationsJavaScript for Enterprise Applications
JavaScript for Enterprise Applications
 
Thinking Functionally
Thinking FunctionallyThinking Functionally
Thinking Functionally
 
My inspirations and learned lessons
My inspirations and learned lessonsMy inspirations and learned lessons
My inspirations and learned lessons
 
What is scala
What is scalaWhat is scala
What is scala
 
JavaScript (without DOM)
JavaScript (without DOM)JavaScript (without DOM)
JavaScript (without DOM)
 
Rise of the Single Page Application
Rise of the Single Page ApplicationRise of the Single Page Application
Rise of the Single Page Application
 

Introduction to Web Application Clustering

  • 1. Introduction to Web Application Clustering Piyush Katariya pkatariya@equalexperts.com © Equal Experts UK Ltd 2011 www.equalexperts.com 1
  • 2. The scaling challenge • NFR Now • userLoad = 50+ • Single jvm • 3 Ghz processor, single core • 2+ GB RAM • NFR Expected • userLoad = 500+ © Equal Experts UK Ltd 2011 www.equalexperts.com 2
  • 3. Scaling UP • AKA Vertical clustering • Moore’s law • Taking advantage of processor power and memory • Multiple app instances on same machine  Do take care of  Cache  Static variables, singletons  User Sessions • Scaling your code • Cannot combat hardware failure © Equal Experts UK Ltd 2011 www.equalexperts.com 3
  • 4. Load Balancing • Algorithms  Round robin (Simple, Weighted, Dynamic)  Quickest  Least Connection  Hybrid • Software Vs Hardware Load Balancers © Equal Experts UK Ltd 2011 www.equalexperts.com 4
  • 5. Apache Server Tomcat Cluster 1 N/W Tomcat Cluster 2 © Equal Experts UK Ltd 2011 www.equalexperts.com 5
  • 6. The challenge continues.. • NFR Now • userLoad = 500+ • two jvm’s • Multicore processor • 8+ GB RAM • NFR Expected • userLoad = 5000+ • Better response time © Equal Experts UK Ltd 2011 www.equalexperts.com 6
  • 7. Scaling Out • AKA Horizontal Clustering • First step towards HA • Taking advantage of low cost commodity hardware • Multiple Nodes/Machines Again do take care of  Cache  Static variables, singletons  User Sessions • Can combat hardware failure © Equal Experts UK Ltd 2011 www.equalexperts.com 7
  • 8. N/W Apache Server Node 1 Node 2 Node 3 Node 4 © Equal Experts UK Ltd 2011 www.equalexperts.com 8
  • 9. The “Perfection” only exists in dictionary • Prefer “scaling out” over “scaling up” • Tune your thread pools and db connection pools • Mind your loggers • Cache’s == Steroids for web-app • High intra-cluster bandwidth • Seek for RIA app design • gzip your HTTP responses • Continuous monitoring is a must © Equal Experts UK Ltd 2011 www.equalexperts.com 9
  • 10. Its not only about web! • Scientific problem computing • Space objects behavior simulations • Multiplayer games • Real motion graphics • MapReduce © Equal Experts UK Ltd 2011 www.equalexperts.com 10
  • 11. Workshop Time ! • Pre- requisites  Apache Tomcat 7  Apache 2.x  mod-jk module for Apache © Equal Experts UK Ltd 2011 www.equalexperts.com 11
  • 12. The Workshop Problem ? “Create your private vertical cluster on your local machine using two tomcat instances front ended with Apache HTTP server which will have load balancer employing Weighted Round Robin policy ” Apache Server Tomcat Cluster 1 N/W Tomcat Cluster 2 © Equal Experts UK Ltd 2011 www.equalexperts.com 12
  • 13. Get started  Install Apache HTTP Server 2.x  Create a folder named “cluster”  Create two instances(physical) of tomcat by extracting given zip folder twice in “cluster” folder and name them “<YourName>1”, “<YourName>2”  conf/server.xml • Comment /Remove connector tag with “HTTP/1.1” protocol • Cluster I - cluster/<YourName>1  Server port – 8005 , AJP/1.3 Connector Port - 8009 • Cluster II – cluster/<YourName>2  Server port – 8105 , AJP/1.3 Connector Port - 8109 • Add attribute jvmRoute=“<Your name>1” in Engine tag element  Add <distributable /> tag in web.xml for .war under webapps folder © Equal Experts UK Ltd 2011 www.equalexperts.com 13
  • 14. Continue…  Copy mod_jk.so to apache/modules folder  apache/conf/httpd.conf  “LoadModule jk_module modules/mod_jk.so”  JkWorkersFile confworkers.properties  JkMount /examples/jsp/* bal1  JkMount /jkstatus/ stat1 © Equal Experts UK Ltd 2011 www.equalexperts.com 14
  • 15. The last touch  apache/conf/workers.properties worker.<YourName>1.type=ajp13 worker.<YourName>1.host=localhost worker.<YourName>1.port=8009 worker.<YourName>1.lbfactor=10 worker.<YourName>2.type=ajp13 worker.<YourName>2.host=localhost worker.<YourName>2.port=8109 worker.<YourName>2.lbfactor=10 worker.bal1.type=lb worker.bal1.stickysession=1 worker.bal1.balanceworkers=<YourName>1,<YourName>2 worker.list=bal1,stat1 worker.stat1.type=status worker.stat1.css = /status.css © Equal Experts UK Ltd 2011 www.equalexperts.com 15
  • 16. So did you live the moment ? © Equal Experts UK Ltd 2011 www.equalexperts.com 16
  • 17. © Equal Experts UK Ltd 2011 www.equalexperts.com 17

Editor's Notes

  1. Moore&apos;s law is the observation that over the history of computing hardware, the number of transistors on integrated circuits doubles approximately every two years.-Multiple jvms to take optimum use of CPU-Task oriented programming and threadsSingleton per jvm/ singleton per app Sessions :- in memory, jdbc store,
  2. Round Robin: Round Robin passes each new connection request to the next server in line, eventually distributing connections evenly across the array of machines being load balanced. Round Robin works well in most configurations, but could be better if the equipment that you are load balancing is not roughly equal in processing speed, connection speed, and/or memory.Plain Programmer Description: The system builds a standard circular queue and walks through it, sending one request to each machine before getting to the start of the queue and doing it again. While I’ve never seen the code (or actual load balancer code for any of these for that matter), we’ve all written this queue with the modulus function before. In school if nowhere else.Weighted Round Robin (called Ratio on the BIG-IP): With this method, the number of connections that each machine receives over time is proportionate to a ratio weight you define for each machine. This is an improvement over Round Robin because you can say “Machine 3 can handle 2x the load of machines 1 and 2”, and the load balancer will send two requests to machine #3 for each request to the others.Plain Programmer Description: The simplest way to explain for this one is that the system makes multiple entries in the Round Robin circular queue for servers with larger ratios. So if you set ratios at 3:2:1:1 for your four servers, that’s what the queue would look like – 3 entries for the first server, two for the second, one each for the third and fourth. In this version, the weights are set when the load balancing is configured for your application and never change, so the system will just keep looping through that circular queue. Different vendors use different weighting systems – whole numbers, decimals that must total 1.0 (100%), etc. but this is an implementation detail, they all end up in a circular queue style layout with more entries for larger ratings.Dynamic Round Robin (Called Dynamic Ratio on the BIG-IP): is similar to Weighted Round Robin, however, weights are based on continuous monitoring of the servers and are therefore continually changing. This is a dynamic load balancing method, distributing connections based on various aspects of real-time server performance analysis, such as the current number of connections per node or the fastest node response time. ThisApplication Delivery Controller method is rarely available in a simple load balancer.Plain Programmer Description: If you think of Weighted Round Robin where the circular queue is rebuilt with new (dynamic) weights whenever it has been fully traversed, you’ll be dead-on.Fastest: The Fastest method passes a new connection based on the fastest response time of all servers. This method may be particularly useful in environments where servers are distributed across different logical networks. On the BIG-IP, only servers that are active will be selected.Plain Programmer Description: The load balancer looks at the response time of each attached server and chooses the one with the best response time. This is pretty straight-forward, but can lead to congestion because response timeright now won’t necessarily be response time in 1 second or two seconds. Since connections are generally going through the load balancer, this algorithm is a lot easier to implement than you might think, as long as the numbers are kept up to date whenever a response comes through.These next three I use the BIG-IP name for. They are variants of a generalized algorithm sometimes called Long Term Resource Monitoring.Least Connections: With this method, the system passes a new connection to the server that has the least number of current connections. Least Connections methods work best in environments where the servers or other equipment you are load balancing have similar capabilities. This is a dynamic load balancing method, distributing connections based on various aspects of real-time server performance analysis, such as the current number of connections per node or the fastest node response time. This Application Delivery Controller method is rarely available in a simple load balancer.Plain Programmer Description: This algorithm just keeps track of the number of connections attached to each server, and selects the one with the smallest number to receive the connection. Like fastest, this can cause congestion when the connections are all of different durations – like if one is loading a plain HTML page and another is running a JSP with a ton of database lookups. Connection counting just doesn’t account for that scenario very well.Observed: The Observed method uses a combination of the logic used in the Least Connections and Fastest algorithms to load balance connections to servers being load-balanced. With this method, servers are ranked based on a combination of the number of current connections and the response time. Servers that have a better balance of fewest connections and fastest response time receive a greater proportion of the connections. ThisApplication Delivery Controller method is rarely available in a simple load balancer.Plain Programmer Description: This algorithm tries to merge Fastest and Least Connections, which does make it more appealing than either one of the above than alone. In this case, an array is built with the information indicated (how weighting is done will vary, and I don’t know even for F5, let alone our competitors), and the element with the highest value is chosen to receive the connection. This somewhat counters the weaknesses of both of the original algorithms, but does not account for when a server is about to be overloaded – like when three requests to that query-heavy JSP have just been submitted, but not yet hit the heavy work.
  3. HA – 1. 24X7- uninterrupted availibility through day and night 2. dynamic end user response time – no matter how remotely a comp is, response time should be in ms