2017-10-11 78 views
1

在大多數情況下,Geode會爲每個數據結構分配一個分區。例如,每個分類組被分配了其自己的分區,其中關鍵字是用戶數據,並且值是用戶提供的分數,並且條目是通過分數索引的。這個設計的兩個例外是數據類型String和HyperLogLog。全部 字符串被分配到單個分區。如何使用redis適配器複製geode中的非字符串數據

對於WAN複製,我們創建一個網關發件人,然後將此發件人分配給特定區域進行復制。使用redis適配器,我們在默認情況下只有兩個區域,如上所述。由於只有在爲其添加密鑰時纔會創建「設置」數據結構的區域。我們如何使用redis適配器複製這些區域? https://cwiki.apache.org/confluence/display/GEODE/GemFire+Multi-site+%28WAN%29+Architecture

步驟由我做WAN複製:

start locator --name=dc1 --properties-file=gemfire.properties 
start server --name=redis --redis-port=11211 --J=-Dgemfireredis.regiontype=REPLICATE 
create gateway-sender --id=dc1 --remote-distributed-system-id=3 
create gateway-receiver 

現在,我列出這是目前可用的區域。

Cluster-1 gfsh>list regions 
List of regions 
--------------- 
ReDiS_HlL 
ReDiS_StRiNgS 

分配兩個區域的網關發送

alter region --name=ReDiS_StRiNgS --gateway-sender-id=dc1 

它能夠複製字符串而不是其他的數據結構。

gemfire.properties

mcast-port=0 
locators=1dc1[10334] 
distributed-system-id=1 
remote-locators=dc2[10334] 

我已經跑了DC2相同的命令。

回答

0

在爲其他數據結構創建區域之前,Redis適配器實現將查找cache.xml以查看是否定義了該區域。所以,就你而言,你可以在啓動服務器的時候在cache.xml中定義一個網關發送者的區域。請參閱this reference創建cache.xml文件this hierarchy信息也將是有用的。一旦你有了,你可以運行以下命令:

gfsh>start server --cache-xml-file=/path/to/cache.xml 
+0

當你事先不知道地區的名字時,你怎麼定義該地區? –

+0

在遠程集羣上,如果具有該名稱的區域不存在,則數據將被丟棄。因此,您真的需要限制可以創建的區域的名稱,然後在兩個羣集上創建它們。 – Swapnil

相關問題