JBoss Testing Mod Cluster

Having completed and verified the installation of mod cluster, we can now test it with a minimal web application. The sample application packaged as balancer.war contains simply an index.jsp page, which dumps a message on the console.

Now, open your browser and point to the https proxy address we have configured at:
https://192.168.10.1:8888/balancer

Learn how to use JBoss, from beginner basics to advanced techniques, with online video tutorials taught by industry experts. Enroll for Free JBoss Training Demo!

As you can see, mod cluster follows the sticky session policy; that is, once a session is started on one server, subsequent requests are sent to the same node:

Cluster sessions

Load-balancing between nodes

We will run one more test in order to verify how mod_cluster distributes the load between several different clients. For the purpose of our test, we will need a software that can launch a minimal amount of requests. We will use JMeter, which is a Java desktop application designed to load and test functional behavior and measure performance. JMeter can be downloaded from:

HTTP://JAKARTA.APACHE.ORG/SITE/DOWNLOADS/DOWNLOADS_JMETER.CGI.

MindMajix Youtube Channel

In short, a JMeter test plan consists of one or more Thread groups, logic controllers, listeners, timers, assertions, and configuration elements. For the purpose of our example, we will just create the following elements:

  • A Thread Group, which is configured to run 100 subsequent requests
  • An HTTP Request element, which contains the information about the web application endpoint.
HTTP Request element

Additionally, you should add a Listener element, which collects the test plan results in a table/graph in order to analyze it.

Frequently asked Jboss Interview Questions

Now, from the top menu launch Run | Start and the JMeter test will be executed. Running the test demonstrates that the requests are roughly split between the two servers. As a matter of fact, an HTTP Request element, by default, treats every request as a single session that ends at the request.

JMeter test run dialog

Using load metrics

The built-in configuration of mod_cluster distributes requests using a fixed load factor. That is, it corresponds to the default configuration, which is:

The most important factors when computing load balancing are the weight and capacity properties. The weight (default is 1) indicates the impact of a metric with respect to the other metrics. In the previous example, the CPU metric will have twice the impact on the sessions that have a load factor metric of 1.

The capacity, on the other hand, can be used for a fine-grained control on the load metrics. By setting a different capacity to each metric, you can actually favor one node instead of another while preserving the metric weights.
The list of supported load metrics is resumed in the following table:

Load metrics
Metrics

The above metrics can also be set using the CLI. For example, suppose that you want to add a metric that is based on the amount of heap used by the proxy. Here’s what you need to issue:

[standalone@192.168.10.1:9999 /] /subsystem=modcluster:addmetric(
type=heap)
{“outcome” => “success”}
[standalone@192.168.10.1:9999 /] /subsystem=modcluster:readresource(
name=mod-clu
ster-config)
{
“outcome” => “success”,
“result” => {
“advertise-socket” => “modcluster”,
“dynamic-load-provider” => {
“history” => 9,
“decay” => 2,
“load-metric” => [{
“address” => “[(”subsystem” => ”modcluster”)]”,
“operation” => “add-metric”,
“type” => “heap”
}
]
}
}
}
At any time, the metric can be removed using the remove-metric command:
[standalone@192.168.10.1:9999 /] /subsystem=modcluster:removemetric(
type=heap)
{“outcome” => “success”}
Explore Jboss Sample Resumes! Download & Edit, Get Noticed by Top Employers!Download Now!

Job Support Program

Online Work Support for your on-job roles.

jobservice

Our work-support plans provide precise options as per your project tasks. Whether you are a newbie or an experienced professional seeking assistance in completing project tasks, we are here with the following plans to meet your custom needs:

  • Pay Per Hour
  • Pay Per Week
  • Monthly
Learn MoreGet Job Support
Course Schedule
NameDates
JBoss TrainingNov 19 to Dec 04View Details
JBoss TrainingNov 23 to Dec 08View Details
JBoss TrainingNov 26 to Dec 11View Details
JBoss TrainingNov 30 to Dec 15View Details
Last updated: 27 Sep 2024
About Author

Ravindra Savaram is a Technical Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.

read less