Tomcat and TomEE Clustering Automation

tomcat and tomee clustering automation

Tomcat is an open-source web server and servlet container developed by the Apache Software Foundation, it was initially known as Jakarta Tomcat or Tomcat. If you want to deploy and execute Java applications that are written in Java technologies including Java Servlet, Java Server Pages (JSP), etc, then you require Tomcat. TomEE is built on top of Tomcat. It is the Java Enterprise Edition of Apache Tomcat (Tomcat + Java EE = TomEE).

tomcat tomee autoclustering

If you have a website running on a production server with a Tomcat environment, your website might get thousands of web requests per minute. At this point, you most likely feel that the memory resources usage in one Tomcat JVM become overwhelmed. To prevent your server from going down or unresponsive, you can configure a Tomcat cluster by placing two or more Tomcat servers. A cluster is a group of servers that communicate with one another, and the Tomcat instance in a Tomcat cluster is often referred to as a node. Clustering instances of Tomcat make them interconnected.

Implementing Tomcat and TomEE auto clustering in RoseHosting Cloud PaaS is fairly easy. In this guide, we will show you how to configure Tomcat and TomEE clustering automation on RoseHosting Cloud PaaS in a few steps.

Tomcat/TomEE Auto-Cluster Installation

In this article, we are not going to compare Tomcat and TomEE functionality, however, you can see the comparison table below.

tomee and tomcat clustering automation

There are many tutorials on how to configure Tomcat/TomEE cluster you can find on the internet, but for some users, they found it complicated and not user-friendly. With RoseHosting Cloud PaaS, we can complete Tomcat or TomEE clustering automation in a few steps.

  1. Log in to your RoseHosting Cloud PaaS account at https://app.rosehosting.cloud and click on New Environment
clustering automation for tomee and tomcat
  1. In the topology wizard, choose Tomcat or TomEE among Java application servers and switch on the Auto-Clustering slider. You can adjust anything you want, like the disk limit, scaling limit, etc then click on Create button at bottom right.
clustering automation for tomcat and tomee
  1. Wait for a few minutes and you will get a notification on your dashboard and an email telling you that the environment has been successfully created.
auto clustering for tomcat and tomee
auto clustering for tomee and tomcat

The new environment is already running. You can see load balancer and application servers in the new environment.

Tomcat / TomEE Cluster Topology

The picture below shows the default cluster topology:

automatic clustering of tomcat and tomee

Using the topology as shown in the picture above will ensure that it meets the performance and fault tolerance requirements. NGINX acts as the load balancer in front of the cluster that handles the workload distribution.

Once completed, you can click on the ‘Config’ button under the Application servers

automatic clustering of tomee and tomcat

Then navigate to /opt/tomcat/conf/ in directory three on the left and you will find that the “Cluster” element is added to the /opt/tomcat/conf/tomcat-cluster.xml configuration file:

tomcat and tomee automated clustering

If you want to check or modify something, you can do it at Configuration File Manager.

Let’s look through this in more detail:

The Tomcat instance is added to the configuration as LocalMember. Other Tomcat nodes in the layer are added by their IPs and unique ID, which are generated using the containers’ IP addresses and IDs.

tomee and tomcat automated clustering

For relocating sessions, we use the DeltaManager. The session data is spread across all the layer nodes.

automated clustering for tomcat and tomee

For discovering the cluster peers we use the Static membership and the server.xml file on every node also a list of all the cluster members.

The cluster uses TCP protocol on port 4004 to create an interconnection between the nodes – the cluster creation process also adds the firewall rule.

automated clustering for tomee and tomcat

In the /opt/tomcat/conf/context.xml configuration file, the “org.apache.catalina.ha.context.ReplicatedContext” class is used for the context implementation to allow replication.

how to automatically cluster tomcat and tomee

The instance creation process generated all these configurations automatically and does not require manual modification.

Tomcat / TomEE Cluster Horizontal Scaling

In RoseHosting Cloud PaaS, enabling Tomcat/TomEE Cluster Horizontal Scaling is fairly easy.

  1. Click on your Tomcat/TomEE cluster environment then go to Settings > Auto Horizontal Scaling
how to auto cluster tomcat and tomee
  1. Set up scaling triggers for the required resources

In this section, you can configure the scaling limit according to your liking. You can configure the triggers for specific stacks and resources (CPU, RAM, Network, Disk) within your environment separately. Just specify the conditions of scaling and then click on the Apply button to apply the changes.

Please note that the minimum number of worker nodes to run horizontal clustering is 2, you can set up the Scale in limit respectively as in the picture above.

That’s it! You have successfully configured Tomcat/TomEE Auto-Clustering on RoseHosting Cloud PaaS.

Of course, you don’t have to do Tomcat/TomEE Auto-Cluster Installation if you have an account at RoseHosting Cloud PaaS, in which case you can simply ask our expert Linux admins to do Tomcat/TomEE Auto-Cluster Installation for you. They are available 24×7 and will take care of your request immediately. If you do not have an account at RoseHosting Cloud PaaS and are looking for a reliable Tomcat web hosting that offers scalability and high availability, RoseHosting Cloud PaaS auto-clustering is an excellent solution to consider.

PS. If you liked this post, on how to do Tomcat/TomEE Auto-Cluster Installation, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.

Leave a Comment

To prove you are human please solve the following *