每个 pod 都有自己的 Hazelcast iList

Each pod has its own Hazelcast iList

我在微服务的 hazelcast.xml 文件中配置了如下列表

<list name="listA">
    <statistics-enabled>false</statistics-enabled>
    <backup-copy>1</backup-copy>
<list>

当我在副本数=2 的 k8s 集群上部署微服务时,我期望 listA 的值与 pods 共享,这意味着当 pod-0 添加一个listA 的条目该条目将对 pod-1 可见。但我发现每个 pod 都有自己单独的实例,我不确定为什么,任何 help/suggestion 都表示赞赏。

或者我应该改用 Hazelcast 的 IMap 吗?

你的pods集群了吗?

您是否在日志中收到如下消息:

Members {size:2, ver:2} [
    Member [12.34.56.001]:5701 - 7ee6659e-620c-4db6-b348-8769000c2b0a
    Member [12.34.56.002]:5701 - 41238cc4-ef9a-4d50-94a7-a8fab67f43de this
]

如果您看到 size:2,它是两个 pods 的簇。如果它是两个 pods 的集群,您的 listA 应该可以从两者访问。

如果你有 replicas==2 那么你会得到两个 pods,但如果它们找不到彼此,它们将形成两个集群,每个集群一个 pod,而不是一个集群,每个集群两个 pods.

您需要检查 Kubernetes 的发现部分。参见 here。 最简单的方法是关闭多播,打开 Kubernetes,使用默认命名空间和服务名称。一旦你有了 运行 你就可以扩展到 不同的命名空间、角色、运算符、掌舵图等

This guide 也可能有帮助。