微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决对于具有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命令创建所有区域,以使它们持久化在群集配置服务中,并在服务器出现时“推送”到服务器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。