Stable Throughput - Scalability
Provide consistent response times in light of increased system load
Manageability of Servers
Server upgrade with no service interruptions
To enrich your career and become a JBoss professional, visit Tekslate, the global online training platform:" JBoss Training". This course will help you achieve excellence in this field.
General understanding A cluster is a set of nodes that communicate with each other and work toward a common goal A Cluster provide these functionalities: Scalability (can we handle more users? can we add hardware to our system?) Load Balancing (share the load between servers) High Availability (our application has to be uptime close to 100%) Fault Tolerance (High Availability and Reliability) State is conserved even if one server in the cluster crashes
High Availability and numbers
|Uptime||Downtime per year|
Clustering and JBoss Support clustering with a built-in configuration ⇒ all configuration Can also be integrated to an external balancer A cluster is defined by Multicast Address Multicast Post Name Multicast is the protocol which allows nodes inside to a cluster to communicate without knowing each other. You can think of multicast of a radio or a TV channel, only those who are tuned received the information. Communication between nodes is provided by JGroups, which is a library for multicast communication.
|All JBoss clustering services are built on top of JGroups|
Base element to communicate is the Channel (quite equivalent to a socket). All messages received and sent over a Channel have to pass through the protocol stack. JBoss AS serves both static and dynamic content. Not scalable. Additional users can only be handled by improving the performance of the server (e.g. adding additional CPUs, more memory). No fault tolerance. If the JBoss AS server goes down, the entire service becomes unavailable. External Load Balancer Architecture Add one or many web servers to balance the load to multiple JBoss AS nodes typically running on separate physical servers. Additional user load can be handled by adding another server running JBoss AS. If anyone of the JBoss AS nodes fail, the service is still available through other JBoss AS servers. General configuration for the following examples Copy the all directory and create two directory (e.g. node1 and node2) To run the first node : ./run.sh -c node1 -b 127.0.0.1 -Djboss.messaging.ServerPeerID=1 To run the second node : ./run.sh -c node2 -b 192.168.1.180 -Djboss.messaging.ServerPeerID=2
|You need to bind the servers to different addresses or else one of the JBoss instances won’t start. JBoss.messaging.ServerPeerID has a unique value for each instance, this is required for JMS clustering services.|
For an in-depth understanding on JBoss click on: