集群大小调整案例研究 – Quorum Queues 第二部分
在上一篇帖子中,我们开始了对我们的工作负载使用 quorum queues 的大小调整分析。我们专注于消费者保持同步的理想情况,意味着没有队列积压,并且集群中的所有 broker 都在正常运行。通过运行一系列基准测试,模拟我们在不同强度下的工作负载,我们确定了每 1000 msg/s 每月成本方面排名前 5 的集群大小和存储容量组合。
- 集群:7 节点,8 vCPU (c5.2xlarge),gp2 SDD。成本:$54
- 集群:9 节点,8 vCPU (c5.2xlarge),gp2 SDD。成本:$69
- 集群:5 节点,8 vCPU (c5.2xlarge),st1 HDD。成本:$93
- 集群:5 节点,16 vCPU (c5.4xlarge),gp2 SDD。成本:$98
- 集群:7 节点,16 vCPU (c5.4xlarge),gp2 SDD。成本:$107
还有更多测试要运行,以确保这些集群可以处理诸如 broker 故障和在中断或系统减速期间累积大量积压等情况。
所有 quorum queues 均使用以下属性声明
- x-quorum-initial-group-size=3
- x-max-in-memory-length=0
x-max-in-memory-length 属性强制 quorum queue 在安全时立即从内存中删除消息体。您可以将其设置为更长的限制,这是最激进的 - 旨在避免内存大量增长,但代价是当消费者跟不上时需要进行更多磁盘读取。如果没有此属性,消息体将始终保存在内存中,这可能会导致内存增长到触发内存警报的程度,从而严重影响发布速率 - 这是我们希望在本工作负载案例研究中避免的情况。