对于具有use-cluster-configuration的apache geode 3服务器集群,复制的区域仅出现在1台服务器上,而不是全部3台

问题描述

使用gfsh启动一个定位器:start locator --name=LocatorUAT --properties-file=..\config\gemfire.properties 然后,我使用属性文件和cache.xml启动服务器

start server --name=ServerUAT --properties-file=..\config\gemfire.properties

其中的属性具有use-cluster-configuration=true,并且cache.xml具有许多这样的区域:

<region name="deal" refid="REPLICATE_PERSISTENT"><region-attributes disk-store-name="deal" disk-synchronous="false"></region-attributes></region>

然后我再启动2台这样的服务器:

start server --name=ServerUAT2 --server-port=40405

start server --name=ServerUAT3 --server-port=40406

这些都很好,我可以列出连接到集群的成员和客户端。然后,我进行脉动并查看拓扑,在其中可以看到3台服务器,还看到有47个区域:

Pulse

尽管当我逐步进入server2或server3时,脉冲显示的区域为0,并且我希望看到server2和server3中的复制区域。为什么呢?

这是具有47个区域的server1

server1

这是具有0个区域的server2

server2

这是具有0个区域的server3

server3

解决方法

第一件事:不完全支持将群集配置服务与单独的cache.xml文件混合使用,并且可能会出现一些问题,我建议在配置群集时使用一种方法(最好将群集配置服务配置为单个cache.xml文件将来可能会被弃用。

也就是说,第二台和第三台服务器似乎没有使用cache.xml文件启动,并且只要在cache.xml文件中定义了区域,就只会在每台服务器上本地创建区域(或者每当定位器通过集群配置服务将它们推送到它们时);这可能就是这里发生的事情。

如何解决此问题(假设上述假设正确):不要对任何成员使用单独的cache.xml文件,而是使用gfsh命令创建所有区域,以使它们持久化在群集配置服务中,并在服务器出现时“推送”到服务器。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...