With my sojourn at my current client due to come to an end at Christmas, I’ve started a period of documenting some of the things I’ve learnt. As I’ve “mentioned before(magpiebrain – There are some things you just don’t want to learn)”:http://www.magpiebrain.com/archives/2004/11/18/lessons , not everything I’ve learnt has been pleasant, but it’s all be informative. One of the most valuable experiences has been my first exposure to Weblogic. Previously I’d worked at smaller clients, and as such had only really used JBoss, so a chance to use what is considered by many to be the best of the “big” J2EE containers was welcome.
In general, I was fairly impressed with Weblogic. Yes it costs a huge amount of money. No, it isn’t perfect. But it does have some excellent features, especially impressive being it’s cluster management. So, for posterity’s sake (and for the sake of my own poor short term memory) I thought I’d introduce some Weblogic clustering concepts – domains, admin servers, node managers, managed instances and of course, clusters.
What is a Domain?
A domain is a management group. Clusters exist entirely within one domain, and a domain may contain multiple clusters. A cluster is managed by a single Admin Server.
What is an Admin Server?
An admin server is a process in charge of managing all facets of a domain. You can access an admin server either by its web front end, or directly via JMX (as “WLShell”:www.wlshell.com/ and the Ant weblogic tasks do). An admin server can start, stop and configure clusters, managed server instances, and the domain JNDI tree. It is also responsible for deploying applications – if you want to deploy an application, you contact the admin server, give it an application, and tell it where you want it deployed (either on a specific server instance, or on a cluster).
What is a Node Manager?
A node manager is a relatively “dumb” process, in charge of controlling weblogic server instances on a single machine. When you ask the admin server to manipulate a server instance (either directly or via a cluster), the admin server contacts the node manager on the relevant machine and asks it to perform the required task. Typically operating on port 5555, node managers use SSL for communication between itself and the admin server.
What is a managed Server Instance?
This is simply something which can host a deployed application. They are controlled by node managers.
What is a cluster?
A cluster is a set of managed server instances. When deploying an application you can specify that the application gets deployed to a cluster. You can start or stop a whole cluster, which in turn automatically starts/stops the managed server instances inside the cluster.
And because a picture paints a thousand words…
Hopefully this will make things a little clearer: