不同Kubernetes集群中的Hazelcast节点之间的数据是否强一致



背景:在我们的项目中需要将余额信息存储在KV存储中。KV存储需要跨DC(不同的Kubernetes集群(的强数据一致性,因为我们的目标是跨3个DC(不同Kubernete集群(部署KV存储,以实现高可用性。

我们的设计:将HazelCast 3个节点部署到3个不同DC中的3个不同Kubernetes集群/Docker。这意味着每个DC有1个Kubernetes集群,Hazelcast节点部署到集群的docker。因此,总共3个HazelCast节点组成一个集群。

我们的问题:

  1. 这3个HazelCast节点能够形成集群吗?正如我们所知,它们仅通过TCP进行通信。但是,在不同的Kubernetes/命名空间之间进行通信需要通过Ingress,即HTTP
  2. HazelCast是否能够将数据持久化到Kubernetes PVC(PersistentVolumeClaim(
  3. 3个Hazelcast节点之间的数据是否强一致?它是以拉夫为基础的吗
  1. 您可能不想在不同的Kubernetes集群之间形成Hazelcast集群,因为从网络角度来看,它的性能不是很好。您需要检查WAN复制
  2. Hazelcast将数据存储在内存中,而不是磁盘上
  3. Hazelcast CP子系统实现Raft。并不是所有的数据结构都由CP子系统支持,但由于您提到了KV存储-IMap

最新更新