kubernetes - 云上高可用性的 RabbitMQ 最佳实践
问题描述
我打算在 Kubernetes Engine 集群上部署 RabbitMQ。我看到有两种位置类型,即 1. 区域 2. 区域 有人可以帮助我了解每种位置类型我能想到什么样的好处吗?我相信多区域设置可以帮助增强整个网络。即使在发生区域故障事件的情况下,多区域设置也可以确保无可争议的服务。这种理解正确吗?我正在寻找选择位置类型的相关理由。请帮忙。
解决方案
我打算在 Kubernetes Engine 集群上部署 RabbitMQ。我看到有两种位置类型:
- 地区
- 区
有人可以帮助我了解每种位置类型我能想到的好处吗?
一个区域(可用区)通常是一个数据中心。
区域是位于同一地理区域的多个区域。将“集群”部署到区域时,您通常拥有一个跨越 3 个数据中心的 VPC(虚拟私有云)网络,并且您将组件分布到这些区域/数据中心。这个想法是您应该对整个 _datacenter 的故障具有容错能力,同时在您的系统中仍然具有相对较低的延迟。
即使在发生区域故障事件的情况下,多区域设置也可以确保无可争议的服务。这种理解正确吗?我正在寻找选择位置类型的相关理由。
当使用多个区域时,例如在世界的不同地区,通常这样做是为了靠近客户,例如提供较低的延迟。出于同样的原因,CDN 服务分布到多个地理位置。当将服务部署到多个区域时,区域之间的通信通常使用异步协议(例如消息队列)来完成,因为对于同步通信而言延迟可能太大。
推荐阅读
- elasticsearch - 通过 Kafka 将 gz 压缩日志文件从 s3 加载到 Elasticsearch
- c++ - 为什么 setw 不显示空格?
- javascript - 与 onblur() 一起使用时,如何停止 RegularExpressionValidator 触发?
- prolog - 如何在序言中陈述一个事实,这两种方式都有效?
- python-3.x - Python 将本地文件上传到 Sharepoint 团队站点
- java - Flyway 不会抛出异常
- javascript - 无法将 setInterval 运行到 javascript 中的另一个函数中
- javascript - 当我更改一个请求时,如何存储其他请求?
- java - 无法使用 ms graph 设置个人资料照片
- python - 如何在 FOR 循环中从多个列表中打印多个元素?