You need to enable JavaScript to run this app.
文档中心
消息队列 RocketMQ版

消息队列 RocketMQ版

复制全文
下载 pdf
最佳实践
跨可用区部署 RocketMQ 实例
复制全文
下载 pdf
跨可用区部署 RocketMQ 实例

跨可用区部署可提高实例的可用性,本文档介绍跨可用区部署方式对于实例的影响。

注意事项

创建跨可用区部署的 RocketMQ 实例前,应确认以下问题:

  • 部署 RocketMQ 客户端的 ECS 和 RocketMQ 实例所在的可用区应尽量一致,避免故障域不对等的问题。
  • 跨可用区部署的实例可能会出现 2ms~3ms 的网络延迟,确认单请求时延上升对业务是否有影响。
  • 客户端使用同步方式调用接口的情况下,实例的吞吐性能可能会下降,需要考虑预留一定的性能空间、升配到更高的计算规格或改为异步调用接口。

设置跨可用区部署

消息队列 RocketMQ版支持跨可用区部署 RocketMQ 实例,即支持多 AZ。跨可用区部署的实例具备更强的容灾能力,全方位保障集群数据的可靠性和服务的可用性。
在购买 RocketMQ 实例时,部署方式设置为跨可用区部署,并选择 3 个可用区即可实现跨可用区容灾。创建实例后,不可修改实例的部署方式,即单可用区部署的实例无法切换为跨可用区部署。跨可用区部署的实例在使用姿势上对客户端没有区别。但是建议客户端机器也分散到和服务端相同的多个可用区部署,以提升整体服务的可用性,也可以避免可用区孤立场景下的故障问题。
对于已购买的 RocketMQ 实例,您可以在 RocketMQ 实例的实例详情页签中基本信息区域找到可用区一行,查看可用区数量。如果可用区数量大于 1,表示该实例为跨可用区部署的实例。

可用性与故障域

跨可用区部署的实例,网络资源、计算节点、存储节点等底层资源均会分散在多个可用区,故障在多个可用区之间互相隔离,确保单个可用区内的底层资源故障不影响其他可用区的节点。某个可用区内如果出现计算、存储等类型故障,在集群内部均可以切换到其他可用区,保障业务持续可用。如果出现一个以上的可用区故障依然会出现可用性问题。
如果两个可用区之间出现网络故障,即可用区之间网络不通,此时数据可以正常写入,但是可能会影响副本数据的同步进度。

性能影响

跨可用区部署的场景下,包括副本在内的数据会分散到多个可用区,数据请求链路也会分散至多个可用区,即默认不亲和,而多个可用区之间的网络延迟会 0.5~1ms 范围内,比可用区内略高,因此跨可用区部署对请求时延会有一定的影响,也会增加副本同步间的延迟时长。
RocketMQ 实例中,数据会自动同步到副本,因此吞吐量峰值能力影响对比单可用区会有一定的性能损耗。通常情况下,同步发送性能损耗小于 20%,异步发送小于 10%。

最近更新时间:2024.02.18 14:47:27
这个页面对您有帮助吗?
有用
有用
无用
无用