geode叢集配置服務概述
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。
叢集配置服務如何工作
當使用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)。