【问题标题】:Hazelcast master node election in EKS / AWS is possible?EKS / AWS 中的 Hazelcast 主节点选举是可能的吗?
【发布时间】:2020-01-02 15:14:37
【问题描述】:

我们有一个在物理盒子中运行的 Spring Boot 应用程序。计划迁移到 EKS (AWS)。我们已将榛树用于下面列出的多种用途。

是否可以在 AWS 中使用 hazelcast 本身来利用相同的功能。?
或者我应该使用任何其他技术而不是使用 hazelcast 本身?

Hazelcast 用于:
1. 大师选举(机器)
2. 缓存(有时保留一些文件,主要是 websocket 消息,并在需要时传输这些文件)

大师选举: 它用于从 4 个框中选择任何一台机器,以执行特定的工作,直到下次重新启动/重新部署。

使用的 Hazelcast 版本:com.hazelcast.hazelcast:3.4.2

参考:what algorithm hazelcast uses to find the master node

注意:之前我提到过leader(实际上是Hazelcast的master)

【问题讨论】:

  • 您可以使用(几乎)所有 Hazelcast 功能,无论其部署在何处,无论是物理环境还是 AWS 或任何其他云环境。您可以继续使用相同的主选举和缓存功能。
  • 对于主节点选举,据我了解,您使用的是最旧的节点。如果升级到最新的 3.12.x,可以在CPSubsystem 中使用FencedLock 进行leader 选举,具有强一致性保证。见FencedLock manualLong Live Distributed Locks blog post
  • 谢谢@mdogan。我们将尝试这样做,一旦完成/有任何疑问,我们就会通知您。

标签: amazon-web-services hazelcast amazon-eks leader-election


【解决方案1】:

对于缓存,绝对可以。很多人都是这样用的。 Hazelcast 与所有 Kubernetes 环境完美集成。

对于领导选举,我不确定我是否了解您的用例以及您希望在 EKS 中做什么。在 Kubernetes 中,您通常更关注容器/pod 级别,而不是机器本身。所以,为了保持 pod 之间的领导选举,是的,你可以使用 Hazelcast,这不是问题。

【讨论】:

  • So, to keep the leader election between pods, then yes - 我该怎么做?您有任何示例或文档吗?我搜索了,但没有找到。我们需要连接 MSExchange 并阅读邮件。一次,所有机器都不应该阅读邮件(因为它可能会出错 - 就像已经阅读过的问题一样)。因此,我们为每次重新启动/重新部署保留一台专用(领导者)机器来读取。希望你明白了。
【解决方案2】:

A.您需要升级到更新的版本,最好是 3.12.5,因为更新的版本在功能方面比之前的版本具有更多的功能。

B.据我所知,您需要一个分布式锁,以便在获取时,没有其他应用程序或线程或成员可以执行锁边界内定义的操作。在这里查看:https://docs.hazelcast.org/docs/3.12.5/manual/html-single/index.html#lock

使用 Hazelcast 作为其功能的分布式系统与底层平台、EKS 或 AWS 直接或本地无关。集群形成后,您可能希望将 Hazelcast 视为具有参考手册中列出的所有分布式功能的服务。

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2020-08-23
    相关资源
    最近更新 更多