Fabric3 supports two deployment topologies: a single-VM domain where a runtime operates in isolation and a distributed domain where runtimes operate in unison as part of a domain. For an overview, see The Domain.
The single VM domain is the default configuration. Contributions are deployed to the same runtime instance that hosts components:
In addition to single-host deployments, a single-VM configuration can be used to run a shared-nothing Fabric3 cluster.
Fabric3 supports two distributed domain topologies: peer-to-peer node-based and controller-based. The recommended topology for the Fabric3 standalone server and Tomcat host is the node-based configuration. When run in other host environments such as WebLogic, Fabric3 will use the controller-based topology.
The node topology is zero-configuration: as runtimes are booted they will auto-discover and converge in the domain. Nodes are partitioned into zones which are homogenous clusters. That is, each runtime in a zone has the same configuration and hosts replicas of the same services. Starting a node runtime is simple - configure its domain name and zone as described below and execute: java -jar server.jar node
.
The runtime mode is configured using the mode attribute of the <runtime>
element:
<config> <runtime mode="node"/> </config> |
Valid values are: vm,
node, participant,
and controller
.
If more than one domain is run on the same physical network, it is necessary to create unique domain names. The domain name is configured using the domain attribute of the <runtime> element:
<config> <runtime domain="mydomain"/> </config> |
domain
.Cluster communication is handled by JGroups. The JGroups protocol stack can be configured by using the federation element in systemConfig.xml:
<config> <federation> <config> <!-- JGroups XML configuration --> </config> </federation> </config> |