0

在集群中,我们希望创建既不是发送者也不是接收者的成员,同时在每个集群中有 1 个发送者/接收者。我们首先在给定集群中启动了发送方/接收方,没有错误。一旦我们启动既不是发送者也不是接收者的成员,它就会引发这个错误:

java.lang.IllegalStateException:无法使用 [gateway-sender-A] 网关发件人 ID 创建区域 /data,因为另一个缓存具有使用 [] 网关发件人 ID 定义的相同区域。

一些假设: - 复制区域 - 串行网关发件人 - 手动启动对于所有网关发件人都是错误的

我的猜测是,由于该成员没有网关发件人 ID,因此它抱怨为空白,我对此感到困惑。我认为我们可以在集群中拥有既不是发送方/接收方的成员。有人可以澄清吗?

谢谢

4

2 回答 2

0

我假设您在集群中使用对等配置,因此所有这些都是对等而非客户端。那么,同一区域的配置需要相同,即如果成员 A 有网关发送者 1,则成员 B 在 gateway-sender-ids 属性中应该有发送者 1。

当起始成员发现集群中某处存在同名但配置不同的区域时,将引发此错误。并且错误信息告诉了详细的原因。

为了实现“既不是发送者也不是接收者”,我认为只需不在该特定实例上配置网关发送者/接收者即可。

于 2016-12-24T00:33:31.863 回答
0

弄清楚了。

我以前的理解是基于这张图,广域网拓扑

左上角的 2 个成员既不是发送者/接收者。这是错误的。该图有点误导。

可以在缓存 xml 中设置哪些成员是接收者,但不能设置托管该区域的哪些成员是发送者。换句话说,成员中有标签并不意味着该成员是发送者,它只是意味着该区域在集群中有发送者

因此,如果您想要指定区域的发件人,则必须<gateway-sender>在指定区域下的所有成员中包含该标签才能使其有效。

于 2017-01-03T18:41:38.753 回答