mod_cluster A new httpd-based load balancer Brian Stansberry JBoss, a division of Red Hat



Similar documents
mod_cluster Documentation

Intro to Load-Balancing Tomcat with httpd and mod_jk

Example Apache Server Installation for Centricity Electronic Medical Record browser & mobile access

JBoss Enterprise Application Platform 5 HTTP Connectors Load Balancing Guide

Apache and Tomcat Clustering Configuration Table of Contents

JBOSS OPERATIONS NETWORK (JBOSS ON) MONITORING

EQUELLA. Clustering Configuration Guide. Version 6.0

STREAMEZZO RICH MEDIA SERVER

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Configuring IIS 6 to Load Balance a JBoss 4.2 Adobe LiveCycle Enterprise Suite 2 (ES2) Cluster

Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November Pivotal Software, Inc. All rights reserved.

KonyOne Server Installer - Linux Release Notes

24x7 Scheduler Multi-platform Edition 5.2

WEBLOGIC ADMINISTRATION

Setting Up B2B Data Exchange for High Availability in an Active/Active Configuration

SpagoBI Tomcat Clustering Using mod_jk and httpd on Centos - In-Memory Session Replication.

JMETER - MONITOR TEST PLAN

Tomcat 5 New Features

Administering mod_jk. To Enable mod_jk

Apache Performance Tuning

Apache Tomcat ISAPI Redirector and Canto Cumulus WPP

By PANKAJ SHARMA. Concepts of Server Load Balancing

Scaling Progress OpenEdge Appservers. Syed Irfan Pasha Principal QA Engineer Progress Software

Apache Jakarta Tomcat

Spectrum Technology Platform Version Tutorial: Load Balancing Spectrum Spatial Services. Contents:

Portal In Anger. Ray Ploski Team Lead - Solutions Architecture, JBoss by Red Hat June 22, 2010

JBoss Enterprise Application Platform 5

1. Configuring Apache2 Load Balancer with failover mechanism

Configuring Apache HTTP Server as a Reverse Proxy Server for SAS 9.2 Web Applications Deployed on BEA WebLogic Server 9.2

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Infor Web UI High Availability Deployment

Painless Web Proxying with Apache mod_proxy

Apache Tomcat. Tomcat Clustering: Part 2 Load balancing. Mark Thomas, 15 April Pivotal Software, Inc. All rights reserved.

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

White Paper DEPLOYING WDK APPLICATIONS ON WEBLOGIC AND APACHE WEBSERVER CLUSTER CONFIGURED FOR HIGH AVAILABILITY AND LOAD BALANCE

Agenda. Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat

Implementing a Weblogic Architecture with High Availability

Configuring multiple Tomcat instances with a single Apache Load Balancer

ActiveVOS Clustering with JBoss

Running multiple Tomcat versions on the same host

Tomcat Tuning. Mark Thomas April 2009

How to Integrate IIS with JBoss / Tomcat Under Windows XP and Linux

Performance Optimization of Teaching Web Application based SSH Framework

SIEMENS. Teamcenter Web Application Deployment PLM

MID-TIER DEPLOYMENT KB

Configuring Apache HTTP Server With Pramati

Apache httpd v2.4: Reverse Proxy. (The Hidden Gem) Jim Jagielski

Chapter 1 - Web Server Management and Cluster Topology

Clustering a Grails Application for Scalability and Availability

INCREASE SYSTEM AVAILABILITY BY LEVERAGING APACHE TOMCAT CLUSTERING

Business white paper. HP Process Automation. Version 7.0. Server performance

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Addressing Application Layer Attacks with Mod Security

Integrating Apache Web Server with Tomcat Application Server

JBoss & Infinispan open source data grids for the cloud era

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

.NET UI Load Balancing & Clustering

This section is intended to provide sample configurations and script examples common to long-term operation of a Jive SBS installation.

HP OO 10.X - SiteScope Monitoring Templates

IBM WebSphere Server Administration

Xpert.ivy 4.2. Server Guide

Managing your Red Hat Enterprise Linux guests with RHN Satellite

Apache Tomcat & Reverse Proxies

Apache Tomcat Clustering

Forward proxy server vs reverse proxy server

Step-by-Step guide to setup an IBM WebSphere Portal and IBM Web Content Manager V8.5 Cluster From Zero to Hero (Part 2.)

JBoss Enterprise Application Platform 5 HTTP Connectors Load Balancing Guide

Server Monitoring. AppDynamics Pro Documentation. Version Page 1

WebLogic Server Admin

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

What's new in httpd 2.2?

Red Hat JBoss Core Services Apache HTTP Server 2.4 Apache HTTP Server Installation Guide

Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine

The JBoss 4 Application Server Web Developer Reference

Oracle Managed File Getting Started - Transfer FTP Server to File Table of Contents

Configuring Apache HTTP Server as a Reverse Proxy Server for SAS 9.3 Web Applications Deployed on Oracle WebLogic Server

BMC Remedy Integration Guide

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

.NET UI Load Balancing & Failover

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

Tcat Server User s Guide. Version 6 R2 December 2009

Portal Factory CMIS Connector Module documentation

WebSphere Server Administration Course

Integration Service Database. Installation Guide - Oracle. On-Premises

The MoCA CIS LIS WSDL Network SOAP/WS

Project Management (PM) Cell

Network and Scalability Whitepaper

<Insert Picture Here> Oracle Database Support for Server Virtualization Updated December 7, 2009

Configuring ActiveVOS Identity Service Using LDAP

<Insert Picture Here> Java Application Diagnostic Expert

Oracle WebLogic Server 11g Administration

UNICORE GATEWAY. UNICORE Team. Document Version: Component Version: Date: 19 Apr 2011

XCP APP FAILOVER CONFIGURATION FOR WEBLOGIC CLUSTER AND APACHE WEBSERVER

Enterprise Knowledge Platform 5.6

SOLR INSTALLATION & CONFIGURATION GUIDE FOR USE IN THE NTER SYSTEM

IBM WebSphere Application Server V8.5 lab Basic Liberty profile administration using the job manager

Operations and Monitoring with Spring

Transcription:

mod_cluster A new httpd-based load balancer Brian Stansberry JBoss, a division of Red Hat

Agenda Who is Brian Stansberry? Principal Software Engineer at Red Hat Technical Lead for JBoss Application Server Clustering Part of JBoss overall clustering team Contributor to mod_cluster What is he going to do today? Provide overview of mod_cluster Describe key benefits Give some brief info on how to obtain it and set it up Demo Q&A

What is mod_cluster? Set of modules for Apache httpd and a Tomcat-based webserver Apache httpd-2.2.8+ JBoss AS 5.0.0.GA+, JBoss Web 2.1.1+, Tomcat 6 Allows httpd to act as a load balancer in front of Tomcatbased web servers similar to mod_jk and mod_proxy_balancer JBoss.org project http://www.jboss.org/mod_cluster LGPL Current release is 1.0.0.Beta4 First Release Candidate expected this month

Architecture User requests proxied to backend server using AJP HTTP/HTTPS also supported Request handling on Java side not affected by mod_cluster Key difference back channel from backend server to httpd Lifecycle information Load balancing information Uses HTTP or HTTPs

Key Advantages Configuration httpd side does not need to know cluster topology in advance Very little configuration on the httpd side Dynamic, not static Improved Load Balancing Main calculations done on the backend servers, where more information is available Fine grained webapp lifecycle control Undeploy an app from a running node without 404s

Dynamic Configuration Backend servers register themselves with httpd during startup Backend servers register applications as they are deployed No static topology configuration on httpd side No more workers.properties No more uriworkermap.properties Optional: httpd servers advertise themselves to backend servers via multicast No topology configuration at all

No more workers.properties Eliminate redundant boilerplate config workers.properties worker.list=lb worker.lb.type=lb worker.lb.balance_workers=node1,node2 worker.node1.type=ajp13 worker.node1.host=192.168.2.1 worker.node1.port=8009 worker.node1.lbfactor=1 worker.node2.type=ajp13 worker.node2.host=192.168.2.2 worker.node2.port=8009 worker.node2.lbfactor=1

Better Load Balancing Problem: Load Balancer lacks info needed to make optimal balancing decisions Aware of: number of requests, number of sessions, bytes sent/received, response times Ignorant of: critical backend server metrics, e.g. CPU utilization, available memory, DB connection pool usage Ignorant of: activity of other load balancers Solution: Backend servers periodically tell httpd how much load each can handle Load Balance Factor : number between 1 and 100 Load balancer uses relative factors to make decisions Backend server uses configurable set of metrics to derive the factor

Load Metrics A particular metric that a backend server tracks to help decide how much load it is under e.g. Heap utilization, CPU utilization Give weights to multiple metrics to come up with an overall load factor e.g. 25% CPU, 25% request count, 50% Session count More than one metric supported in JBoss AS only Multiple readings of metrics go into load factor; older readings decline in importance Highly configurable Pick the metrics and weights that are relevant to your application

Available Load Metrics Web tier utilization: Active sessions, busy connections, bytes sent, bytes received, request count System utilization: CPU utilization, system memory usage, heap usage, number of threads JCA Connection Pool Utilization Generic version to listen to any metric exposed via JMX You can write your own

Installation httpd side Two downloads httpd side and Java side http://www.jboss.org/mod_cluster/downloads/ httpd downloads available for many architectures Linux x86, x86_64, IA64 Solaris 9 Sparc, 10 x86 Windows 32, 64 HP-UX i64, 9000/800 Can of course be built from source Download is a full httpd distribution You could also copy the required.so files from the distribution to your existing httpd install

Configuration httpd side Minimal config add following to httpd.conf: LoadModule proxy_module modules/mod_proxy.so LoadModule httpd.conf proxy_ajp_module modules/mod_proxy_ajp.so LoadModule slotmem_module modules/mod_slotmem.so LoadModule manager_module modules/mod_manager.so LoadModule proxy_cluster_module modules/mod_proxy_cluster.so LoadModule advertise_module modules/mod_advertise.so Listen 192.168.2.3:6666 <VirtualHost 192.168.2.3:6666> <Directory /> Order deny,allow Deny from all Allow from 192.168.2. </Directory> KeepAliveTimeout 60 MaxKeepAliveRequests 0 AdvertiseGroup 224.0.1.105:23364 </VirtualHost>

Installation Java side Single java binary download can be used in both JBoss Web/Tomcat and in JBoss AS 5 JBoss Web/Tomcat Copy contents of the distribution s JBossWeb-Tomcat folder into your install Adds 3 jars to $CATALINA_HOME/lib JBoss AS 5 Copy the distribution s mod_cluster.sar folder to JBoss deploy dir

Configuration JBossWeb/Tomcat Add a LifecycleListener so mod_cluster is aware of lifecycle events Add a jvmroute to give this node a name $CATALINA_HOME/conf/server.xml <Server> <!--... --> <Listener classname="org.jboss.modcluster.modclusterlistener advertise="true"/> <!--... --> <Service name="jboss.web"> <Connector protocol="ajp/1.3" port="8009" address= 192.168.2.1" redirectport="8443"/> <Engine name="jboss.web" defaulthost="localhost" jvmroute= node1"> <!--... --> </Engine> </Service> </Server>

Configuration JBoss AS The server.xml config is similar to Tomcat/JBoss Web shown on last slide. Hooks into JBoss Microcontainer that s at the core of JBoss AS Allows a much richer set of configuration options than can be specified via server.xml E.g. multiple load metrics See docs on http://www.jboss.org/mod_cluster for details

Clustered Mode Java side can operate in 2 modes, depending on whether the Java servers are able to exchange messages with each other Non-clustered mode each backend server independently communicates with each httpd server Lot of connections if there are a lot of servers Clustered mode JBoss AS all config only JGroups used to communicate between backend servers One master server elected to communicate with httpd HA if master fails another takes over

Demo Topology Single Apache httpd instance Two JBoss AS instances cluster01 and cluster02 WAR initially only deployed on cluster01 Zero static topology configuration: AS instances not configured to know about httpd httpd not configured to know about AS instances Demo Application WAR Client GUI that generates load, tracks load balancing Available in the mod_cluster Java binary download demo/ dir

For more info: Main mod_cluster site http://www.jboss.org/mod_cluster Links to docs, downloads, forums, dev lists, etc Tech lead for mod_cluster, Jean-Frederic Clere, will be speaking at ApacheCon next week Community participation very welcome Questions?