This topic provides an overview of the cluster configuration service.
The Spring Session for Tanzu GemFire cluster configuration service persists cluster configurations created by gfsh
commands to the locators in a cluster and distributes the configurations to members of the cluster.
We highly recommend that you use the gfsh
command line and the cluster configuration service as the primary mechanism to manage your cluster configuration. Specify configuration within a cache.xml
file for only those items that cannot be specified or altered using gfsh
. Using a common cluster configuration reduces the amount of time you spend configuring individual members and enforces consistent configurations when bringing up new members in your cluster. You no longer need to reconfigure each new member that you add to the cluster. You no longer need to worry about validating your cache.xml
file. It also becomes easier to propagate configuration changes across your cluster and deploy your configuration changes to different environments.
You can use the cluster configuration service to:
To use the cluster configuration service in Tanzu GemFire, you must use dedicated, standalone locators in your deployment. You cannot use the cluster configuration service with co-located locators (locators running in another process such as a server) or in multicast environments.
The standalone locators distribute configuration to all locators in a cluster. Every locator in the cluster with --enable-cluster-configuration
set to true keeps a record of all cluster-level and group-level configuration settings.
Note: The default behavior for gfsh
is to create and save cluster configurations. You can deactivate the cluster configuration service by using the --enable-cluster-configuration=false
option when starting locators.
You can load existing configuration into the cluster by using the gfsh import cluster-configuration
command after starting up a locator.
Subsequently, any servers that you start with gfsh
that have --use-cluster-configuration
set to true
will pick up the cluster configuration from the locator as well as any appropriate group-level configurations (for member groups they belong to). To deactivate the cluster configuration service on a server, you must start the server with the --use-cluster-configuration
parameter set to false
. By default, the parameter is set to true.
When you use gfsh
commands to create VMware Tanzu GemFire regions, disk-stores, and other objects, the cluster configuration service saves the configurations on each locator in the cluster. If you specify a group when issuing these commands, a separate configuration is saved containing only configurations that apply to the group.
When you use gfsh
to start new VMware Tanzu GemFire servers, the locator distributes the persisted configurations to the new server. If you specify a group when starting the server, the server receives the group-level configuration in addition to the cluster-level configuration. Group-level configurations are applied after cluster-wide configurations; therefore you can use group-level to override cluster-level settings.
Developer or Administrator executes gfsh
commands to configure the cluster.
gfsh
saves the cluster information on the locators. Existing servers using cluster configuration are configured.
Developer or Administrator executes gfsh
to add new members to the cluster.
New members request the configuration from a locator.
Locator distributes the configuration to new servers joining the cluster. Configuration includes regions, disk stores, and jar files,
The following gfsh
commands cause the configuration to be written to all locators in the cluster (the locators write the configuration to disk):
configure pdx
*create region
alter region
**alter runtime
destroy region
create index
destroy index
create disk-store
destroy disk-store
create async-event-queue
alter async-event-queue
destroy async-event-queue
deploy jar
undeploy jar
create gateway-sender
destroy gateway-sender
create gateway-receiver
destroy gateway-receiver
alter query-service
* Note that the configure pdx
command must be executed before starting your data members. This command does not affect any currently running members in the system. Data members (with cluster configuration enabled) that are started after running this command will pick up the new PDX configuration.
** If cluster configuration is enabled, the region this command is applied to must exist in the cluster configuration. If that is not the case, the command will fail saying the region does not exist.
These are the configurations that you cannot create or alter using gfsh
. These configurations must be within a cache.xml
file or be applied by using the API:
You cannot directly modify the attributes of the following objects:
function
custom-load-probe
compressor
serializer
instantiator
pdx-serializer
Note: The configure pdx
command always specifies the org.apache.geode.pdx.ReflectionBasedAutoSerializer
class. You cannot specify a custom PDX serializer in gfsh.
initializer
lru-heap-percentage
lru-memory-size
partition-resolver
partition-listener
transaction-listener
transaction-writer
TransactionListener
GatewayConflictResolver
gateway-listener
gateway-conflict-resolver
gateway-event-filter
gateway-transport-filter
gateway-event-substitution-filter
If you do not want to use the cluster configuration service, start up your locator with the --enable-cluster-configuration
parameter set to false or do not use standalone locators. You will then need to configure the cache (via cache.xml or API) separately on all your cluster members.