Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 14 Current »

Fabric3 supports two deployment topologies: a single-VM domain where a runtime runs in isolation and a distributed domain where a controller manages one or more participant runtimes. For an overview, see The Domain.

Single VM 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.

Distributed Domains

A distributed domain consists of a controller process that receives contributions and is responsible for propagating them to participants that host services and process requests: 

Participants 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.

Note that a controller is not a single point of failure since it is only needed to deploy a new contribution. Once a contribution has been propagated to an initial participant, new participant runtimes can be instantiated and they will contact a peer for the services they are to run. This makes it possible to shutdown a controller after a deployment and only requires the controller to be reactivated when a new deployment is required.

Configuring the Runtime Mode

The runtime mode is configured using the mode attribute of the <runtime> element:

<config>
    <runtime mode="controller"/>
</config>

Valid values are: vm, participant, and controller.

Configuring the Domain Name

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> 
The domain name must be a valid URI host and not contain characters such as ":" or "/". The default domain name is domain.

Configuring Cluster Communications

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>