原文地址:http://geode.apache.org/docs/guide/configuring/cluster_config/gfsh_persist.html
Apache Geode集群配置服务(cluster configuration service)将集群配置(由gfsh创建)保留到集群中的定位器中,并将配置分发到集群成员。
为什么使用集群配置服务
我们强烈建议您使用gfsh命令行和集群配置服务作为主要机制来管理分布式系统配置。使用公共集群配置可减少在配置单个成员时花费的时间,并在集群中启动新成员时实施一致的配置。你不再需要重新配置添加到集群的每个新成员。也不再需要担心验证cache.xml文件。在集群中传播配置更改并将配置更改部署到不同的环境也变得更容易。
你可以使用集群配置服务做以下事情:
- 保存整个Apache Geode集群的配置。
- 使用先前保存的配置重新启动成员。
- 从开发环境导出配置并迁移该配置以创建一个测试或生产系统。
- 启动其他服务器,而不必单独配置每个服务器。
- 配置一些服务器托管特定区域,其他服务器托管另外不同的区域,并将所有服务器配置为托管一组公共区域。
使用集群配置服务
要在Geode中使用集群配置服务,必须在部署中使用专用的独立定位器。群集配置服务不能与位于同一位置的定位器(在另一个进程(如服务器)中运行的定位器)一起使用,也不能在多播环境中使用。
独立定位器将配置分发到集群中的所有定位器。群集中每个将 –enable-cluster-configuration 设置为true的定位器,将保留所有集群级别和组级别配置设置的记录。
Note:gfsh默认创建和保存集群配置。在启动定位器时,可以通过使用–enable-cluster-configuration = false选项来禁用集群配置服务。
随后,使用gfsh启动的,–use-cluster-configuration设置为true的任何服务器,将从定位器和任何适当的组级别配置(对于它们属于的成员组)获取集群配置。要在服务器上禁用群集配置服务,必须将 –use-cluster-configuration 参数设置为false启动服务器。默认情况下,该参数设置为true。
还可以通过启动 参数–load-cluster-configuration-from-dir 设置为true的独立定位器,将现有配置文件加载到集群配置服务中。参考Loading Existring Configuration Files into Cluster Configuration.
集群配置服务如何工作
当使用gfsh命令创建Apache Geode区域(regions),磁盘存储和其他对象时,群集配置服务会将配置保存在群集中的每个定位器(也称为Geode分布式系统)上。如果在发出这些命令时指定一个组,则将保存一个单独的配置,其中仅包含适用于该组的配置。
当使用gfsh启动新的Apache Geode服务器时,定位器将持久(persistent)保存的配置分发到新服务器。如果在启动服务器时指定了组,则除了群集级配置之外,服务器还会接收组级配置。组级配置在集群范围配置之后应用;因此可以使用组级别来覆盖集群级别设置。
创建集群配置的gfsh命令
以下gfsh命令将配置写入集群中所有定位器(定位器将配置写入磁盘):
- 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
Note:必须在启动数据成员之前执行configure pdx命令。此命令不影响系统中当前正在运行的任何成员。运行此命令后启动的数据成员(启用集群配置)将获取新的PDX配置。
以下网关相关命令使用集群配置服务,并且其配置由定位器保存:
- create gateway-sender
- create gateway-receiver
gfsh局限性
有些配置不能使用gfsh创建,而是必须使用cache.xml或API配置:
客户端缓存配置
不能为以下对象的Java类指定参数和值:
- function
- custom-load-probe
- cache-listener
- cache-loader
- cache-writer
- compressor
- serializer
- instantiantor
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配置网关还有一些限制。必须使用cache.xml或Java API配置以下内容:
配置GatewayConflictResolver
不能为以下Java类指定参数和值
- gateway-listener
- gateway-conflict-resolver
- gateway-event-filter
- gateway-transport-filter
- gateway-event-substitution-filter
禁用群集配置服务
如果不想使用集群配置服务,可以将–enable-cluster-configuration参数设置为false。或者不使用独立定位器。然后在所有分布式系统成员上单独配置缓存(通过cache.xml或API)。