集群配置服务概述
Apache Geode集群配置服务 可以把由gfsh
命令创建的集群配置持久化到在集群中的 Locator 上,并将配置分发到集群的成员。
为什么要使用集群配置服务
强烈建议使用gfsh
命令行和集群配置服务作为管理分布式系统配置的主要机制。 使用常见的群集配置可以减少在群集中引入新成员时配置个别成员的时间并保证一致的配置。 您不再需要重新配置添加到群集的每个新成员。 也不再需要担心验证您的cache.xml文件。 在集群中传播配置更改也更容易,并将配置的修改部署到不同的环境中。
您可以使用集群配置服务完成下面的任务:
- 保存整个Apache Geode集群的配置。
- 使用先前保存的配置重新启动成员。
- 从开发环境导出配置,并迁移该配置以创建测试或生产系统。
- 启动新增的服务器,而不必单独配置每个服务器。
- 配置一些服务器以保存某些 region和其他服务器以保存不同的 region,并配置所有服务器来托管一组公共region。
使用集群配置服务
要在Geode中使用集群配置服务,必须在部署中使用专用独立的 Locator。 在多播(multicast)环境中或者协同分布Locator(与另一个进程(如服务器)一起运行的Locator),您将不能使用集群配置服务。
独立Locator将配置分发到集群中的所有 Locator。 集群中,每个设置--enable-cluster-configuration=true
的Locator, 都保留所有集群级和组级配置设置的记录。
注意:
gfsh
的默认行为是创建和保存集群配置。 您可以在启动Locator时使用`--enable-cluster-configuration = false'选项来禁用集群配置服务。
随后, 每个通过gfsh
启动, 同时设置--enable-cluster-configuration = true
选项的 server从Locator获取集群配置以及所有适合的组级配置(如果他们配置了成员组的话)。 要禁用server上的集群配置服务,您必须将--use-cluster-configuration
参数设置为false
之后,启动server。 默认情况下,该参数设置为true。
您还可以通过启动一个独立的设置参数-load-cluster-configuration-from-dir
设置为true的Locator, 将现有的配置文件加载到集群配置服务中。请参阅 将已有的配置文件加载到集群配置中.
集群配置服务如何工作
当您使用gfsh
命令创建Apache Geode的 region,磁盘存储和其他对象时,集群配置服务会将配置保存到集群(也称为Geode分布式系统)中的每个Locator。 如果在发出这些命令时指定了一个组,则单独保存仅包含适用于该组的配置。
当您使用gfsh
启动新的Apache Geode的 server时,Locator将持久化的配置分发到新启动的 server上。 如果在启动 server时指定组,server除了收到集群级别的配置外还会收到组级配置。 组级配置会在应用集群级配置之后再生效, 因此您可以使用组级别来覆盖集群级设置。
创建集群配置的gfsh命令
以下gfsh
命令会将配置写入集群中的所有Locator(Locator将配置写入磁盘):
configure pdx
*create region
alter region
alter runtime
destroy region
create index
destroy index
create disk-store
destroy disk-store
create async-event-queue
deploy jar
undeploy jar
* 请注意,执行configure pdx
命令必须在配置数据成员(data members)之前。 此命令不影响系统中任何正在运行的成员。 运行此命令后启动的数据成员(启用集群配置服务)将会使用新的PDX配置。
以下与网关(gateway)相关的命令使用集群配置服务,Locator保存其配置:
create gateway-sender
create gateway-receiver
gfsh限制事项
有一些配置, 您不能使用gfsh
创建. 这些配置,必须通过使用cache.xml或API进行配置:
- Client cache配置
您不能为以下对象的Java类指定参数和值:
function
custom-load-probe
cache-listener
cache-loader
cache-writer
compressor
serializer
instantiator
pdx-serializer
Note:
configure pdx
命令总是指定org.apache.geode.pdx.ReflectionBasedAutoSerializer
类。 您不能在gfsh中指定自定义PDX序列器。custom-expiry
initializer
declarable
lru-heap-percentage
lru-memory-size
partition-resolver
partition-listener
transaction-listener
transaction-writer
- 增加或删除
TransactionListener
- 增加 JNDI 绑定
- 删除
AsyncEventQueue
另外,使用gfsh
配置网关(gateways)也有一些限制。 您必须使用cache.xml或Java API来配置以下内容:
- 配置
GatewayConflictResolver
- 您不能为以下对象的Java类指定参数和值:
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 distributed system members.如果不想使用集群配置服务,请将--enable-cluster-configuration
参数设置为false或不以独立的方式来启动Locator。 然后,您需要在所有分布式系统成员上逐个配置缓存(通过cache.xml或API)。