在大多数情况下,Geode为每个数据分配一个分区区域 结构体。例如,每个排序集都是自己分配的 分区区域,其中键是用户数据,值是 用户提供的分数,条目按分数编制索引。他们俩 此设计的例外情况是数据类型String和HyperLogLog。所有 字符串被分配到单个分区区域。
对于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 :(得分:0)
在为其他数据结构创建区域之前,Redis适配器实现看起来像cache.xml,以查看是否已定义该区域。因此,在您的情况下,您可以在启动服务器时在cache.xml中定义具有gateway-sender的区域。有关创建cache.xml文件的信息,请参阅this reference this hierarchy信息也很有用。完成后,您可以运行以下命令:
gfsh>start server --cache-xml-file=/path/to/cache.xml