【问题标题】:Best way to setup HA RabbitMQ and Redis ReJson on VM vs Kubernetes [closed]在 VM vs Kubernetes 上设置 HA RabbitMQ 和 Redis ReJson 的最佳方法 [关闭]
【发布时间】:2020-05-08 18:12:16
【问题描述】:

我们需要在 AWS 上使用 HA 多可用区配置设置 Elasticsearch、RabbitMQ 和 Redis ReJson。

但是,对于 Elasticsearch,我们将使用 AWS 托管服务 Elasticsearch,但对于 RabbiMQ & Redis ReJson,在 VM 或 K8s 上设置它会更好。

我们不能将 Redis 的管理服务用作 AWS Memcache 不支持 ReJson 模块,而 Redislab 仅在 PRO 订阅中支持它,这在 2$/per Hour 附近。

对于 K8s,我们正在考虑使用 helm chart 来设置 Redis 和 RabbitMQ,使其成为 HA,整个 Kubernetes 集群将成为多可用区。

对于 VM,在不同 AZ 的所有节点上进行设置将是一个手动过程,或者将使用 Ansible(没有可用的剧本)。

请帮助我们并为两者推荐 Pros & Cons 以及哪一个将易于设置并提供更好的性能。

【问题讨论】:

  • 您已经得到了答案,只需努力获得自己的经验即可。等待别人是不好的,因为只有你知道你最好的环境。云提供商 AWS 提供全方位的指导,让您轻松尝试所有解决方案。其次,这真的取决于你的技能。例如,如果您对 ansible 一无所知,那么当其他解决方案如此简单时,为什么还要花时间在上面。
  • @BMW 感谢您的回复。我同意您的回答,但是现在作为一个团队,我们希望遵循最佳实践并获得更好的性能。
  • 在此处添加问题,如果有人有不好的体验或良好的体验,他们可以更好地了解设置和性能。

标签: amazon-web-services docker kubernetes redis rabbitmq


【解决方案1】:

如果您不需要 RabbitMQ 的某些特定功能,我鼓励您查看 SQS 作为替代方案。

SQS 支持FIFO 并且符合HIPPA,您无需注意扩展资源和维护服务器。

关于 Redis,如果您不能使用 Elasticache,您可以尝试使用 K8s,使用 Sentinel 进行 HA,请参阅此 HELM chart。不推荐使用经典的redis-cluster 命令,如您所见here.

如果您决定在经典 ec2 实例中运行 Redis,则必须为您的 redis 集群中的每个 ec2 实例配置一个 dns,因为如果您需要替换任何它们,您只需将 dns 更改为新的实例 ip 和您的集群仍将工作。如果您使用 IP 来设置集群,则不能这样做,因为静态 ip 在云中不是一个好方法。

使用云托管服务意味着您无需负责服务器维护、扩展和备份,但另一方面也涉及成本。

最后,我认为“最佳实践”基于您的应用程序的需求,只有您知道它是如何工作的以及保持它正常运行的最佳方法。

希望对你有帮助!

【讨论】:

  • 嗨,非常感谢您写下答案和回复。使用 SQS 是一个很好的建议,但为此我们可能不得不更改代码集成,这是不可能的。
  • 对于 redis,我计划使用 helm github.com/helm/charts/tree/master/stable/redis-ha 在 Kubernetes 上部署它。在这个掌舵图中,我将用redislabs/rejson 替换图像,因此我们将运行 Redis/ReJson。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2013-06-11
  • 2014-01-12
相关资源
最近更新 更多