WildFly Domain Mode Concepts: Difference between revisions
Line 9: | Line 9: | ||
[[Image:EAPDomain.png]] | [[Image:EAPDomain.png]] | ||
=Management Policy= | |||
The central management policy for a domain in stored in [[domain.xml|$JBOSS_HOME/domain/configuration/domain.xml]]. | |||
Note that a domain does not specify its servers, nor its hosts directly. It lists the [server groups| JBoss7Domain#ServerGroup] available in the domain. Each server group lists a [profile| JBoss7Domain#Profile], [jvm parameters| JBoss7Domain#Jvm] and a [socket binding group| JBoss7Domain#SocketBindingGroup]. | |||
''domain.xml contains configuration, not topology''. This is a good idea, we can add instances to a server group without modifying domain.xml. | |||
=Domain Mode= | =Domain Mode= |
Revision as of 19:09, 7 July 2017
Internal
Managed Domain
A JBoss managed domain is a centrally-managed group of JBoss instances running on multiple physical hosts. The domain provided centralized management of modules, extensions, system properties, deployments, profiles and deployments. Managed domain is one of the two operating modes a JBoss EAP instance is capable of - the other is standalone. While running in managed domain mode, multiple JBoss EAP instance are managed from a central location, the domain controller, and share a common [management policy|JBoss7Domain#ManagementPolicy]. A domain has one or more domain controllers, one or more host controllers and zero or more server groups. A server group can span multiple hosts.
Management Policy
The central management policy for a domain in stored in $JBOSS_HOME/domain/configuration/domain.xml.
Note that a domain does not specify its servers, nor its hosts directly. It lists the [server groups| JBoss7Domain#ServerGroup] available in the domain. Each server group lists a [profile| JBoss7Domain#Profile], [jvm parameters| JBoss7Domain#Jvm] and a [socket binding group| JBoss7Domain#SocketBindingGroup].
domain.xml contains configuration, not topology. This is a good idea, we can add instances to a server group without modifying domain.xml.
Domain Mode
Details about configuring WildFly in domain mode are available here:
Domain
Migrate https://home.feodorov.com:9443/wiki/Wiki.jsp?page=JBoss7Domain
A set of system properties available to the entire domain can be declared as described here: System Properties at the Top of domain.xml.
Domain Controller
Also see:
High-Availability Domain Controller
Definition.
For more details, see:
Host Controller
Host Controller Networking
The actual values for the management and public interface bind addresses for a specific host are host-dependent, and they are defined in the host controller configuration Note that a host controller and all the server nodes running on the same host share the values for the management and public bind addresses. Also see server node networking.
For more details on how to configure the bind addresses, see:
Subordinate Host Controller
Also see:
Domain Controller/Host Controller Communication
Host controllers connect to the domain controller's management interface native API endpoint to get domain configuration, so the domain controller management functions have to be externally accessible over the management interface, hence the management interface has to be visible on the management (internal) network. A subordinate host controller does not have to expose its management interface.
Process Controller
Server Group
A server group is a set of WildFly server nodes that share the following:
- a common configuration, described in a domain profile
- optionally, a common jvm configuration, described by the <jvm> configuration element.
- optionally, a set of system properties available only to servers that belong to the server group. The declaration is described here: System properties per Server Group.
- a set of port values, described in a domain socket binding group
- a set of deployments.
<server-group name="server-group-A" profile="some-profile"> <system-properties> <property name="some.system.property" value="some value"/> </system-properties> <jvm name="default"> <heap size="6000m" max-size="12000m"/> <permgen max-size="2048m"/> </jvm> <socket-binding-group ref="full-ha-sockets"/> <deployments> <deployment name="..." runtime-name="..."/> ... </deployments> </server-group>
It can be said that the servers of a server group are configured and managed as one, via the domain controller. Server groups allow to apply common management policies, deploy applications to all servers belonging to the server group. The servers of a server group can be subjected to group-wide management operations: all servers can be started or stopped at the same time, in one operation.
The servers belonging to a server group may run on one or multiple VMs. The association between servers, server groups and the VM they run is described here: relationship between servers and server groups.
The server groups are defined and configured in domain.xml.
In domain mode, each server instance belongs to a server group, even if that server group has just one single instance.
Server Groups and Rolling Upgrades
Different server groups can also have the same profile and deployments. This can allow for rolling application upgrades where the application is upgraded on one server group and then updated on a second server group, avoiding a complete service outage.
Server
The association between servers, server groups and the VM they run is described here: relationship between servers and server groups.
Server Node Networking
The actual values for the server node network interfaces are host-dependent, so the host controller defines the actual values for the public and management bind addresses, in its configuration. The host controller and all the server nodes running on the same host share the values for the management and public bind addresses. Also see host controller networking.
Relationship Between Servers and Server Groups
The association between server instances and the hosts they run is defined by the host controller running on each host: the host controller reads its host.xml configuration file and instantiates the server nodes defined in its <servers> section, During start-up, the host controller determines what server group a specific server instance is part of, and pulls the profile configuration, port definitions and jvm configuration associated with that server group from the domain controller.
If more than one server instance is required on a specific host, the port offset that allows multiple server instance to run on the same host is specified in the host.xml's <server> definition as socket-bindings port-offset. For more details, see host.xml <servers> section.
Profile
See:
WildFly Networking Concepts
The networking concepts valid for the standalone mode are also used by the domain mode: