弹性是一个成熟的云服务的赌注之一。弹性使云服务能够根据需要增加容量,以满足需求高峰,并在使用量低的时期随之减少。这使你的消费与业务需求保持一致,并保持最佳成本,同时确保你在任何时候都有必要的容量。
Confluent Cloud现在支持弹性Apache Kafka®集群,允许你以CKUs(Confluent Unit for Kafka)--Confluent Cloud中专用Kafka集群的容量单位--来扩展和收缩专用集群。这篇博文介绍了Confluent Cloud中这项功能的细节。
扩大和缩小专用的Kafka集群
在Confluent Cloud中调整Kafka集群的大小是完全自助式的,让你可以控制管理集群的容量以符合你的需求。这项功能可以通过Confluent Cloud的用户界面、CLI和公共API来实现,因此你也可以通过编程来处理这项任务。
除了扩大和缩小Kafka集群的能力外,我们最近还增加了一个集群负载指标,显示你的Kafka集群的利用率。在你决定调整集群的大小之前,了解集群的利用率是至关重要的,这样你就不会对性能产生不利的影响。监测集群的负载可以提醒你在负载超过某个关键阈值时增加容量,比如70%。你可以选择继续在高负载下运行集群,但这样做会导致生产者/消费者延迟和节流的增加。相反,当负载下降到某个阈值以下时,你可以考虑减少集群的容量以降低成本。
在深入了解围绕这些新功能的用户体验的细节之前,有一些关键点需要注意。
- 扩大和缩小集群的能力适用于Confluent Cloud中的专用Kafka集群。标准和基本集群可以从0到100MB/s无缝扩展,不需要用户做任何操作。
- 在幕后,集群的大小调整是一个两步的过程。你首先需要增加容量(扩展),或删除容量(收缩),然后重新平衡集群上的数据。重新平衡集群上的数据对于确保你从可用容量中获得最佳性能至关重要。
- 调整集群大小所需的时间取决于增加或删除的CKU的数量,以及需要重新平衡的数据量。添加或删除一个CKU通常需要几个小时。
- 当一个现有的调整操作正在进行时,另一个调整任务不能被启动。
- 一旦一个正在进行的调整操作完成,用户将收到一个通知。
- 集群容量的计费是为了给客户提供最大的利益。较高的CKU的计费只有在较新的资源被添加到集群和数据被完全重新平衡时才开始。较低的CKU的计费在收到缩减请求后立即开始。
- 在某些CKU的利用率较高的情况下,有一些保障措施来防止集群缩减,并有警告来通知用户集群上的高负载。
下面看一下集群的大小调整是如何进行的。
Confluent Cloud UI
你可以在Confluent Cloud UI上监控集群负载,也可以通过使用Metrics API。对于下图所示的集群,该集群的负载为44%。此外,你还可以在集群仪表板上查看集群的历史负载,以验证集群上当前的负载已经持续了一段时间,而不是暂时的峰值。
历史集群负载
如果你预计会在这个集群上增加一些工作负载,你可能会决定扩大集群,以便为这种需求的增加做准备。要做到这一点,你可以导航到 "群集概览→群集设置→容量 "标签。这个选项卡显示了集群的当前容量,以及每个CKU维度的使用情况,还有集群的负载。
要扩大或缩小集群,点击 "调整容量",查看允许增加或删除CKU的滑块。当你移动滑块时,你可以看到每个CKU维度可用的最新容量,然后再继续调整大小。
集群从2个扩展到4个CKU
一旦你点击 "应用变化",你会看到一个确认屏幕,显示调整规模将如何改变集群的相关基本成本。
点击 "继续 "后,集群扩展将开始,你将在集群设置屏幕上看到一个横幅,表明扩展或收缩操作正在进行。一旦扩展完成,你将收到一个通知。
集群缩减操作遵循同样的流程,除了有某些保障措施,以防止缩减会对集群的性能产生不利影响。在这种情况下,最后的确认屏幕会警告你任何CKU维度上的使用量超过收缩后集群的容量,以及如果集群负载超过某个阈值。
下面的方案试图将一个集群从2个CKU缩减到1个CKU。
这里,集群上的分区数量超过了4500个(这是1个CKU集群可用的最大分区数量)。除非分区的数量减少到<4,500,否则不可能缩小这个集群。
确认屏幕会显示一个警告,说明分区的数量超过了缩减后集群中CKU的数量。点击 "继续 "后,收缩操作失败,错误信息如下所示。
在Confluent CLI中,你可以通过使用cluster update command ,来扩展或收缩一个集群,如下图所示。这里发布了一个更新,将一个2个CKU的集群扩展到4个CKU。
Confluent Cloud APIs
要使用Confluent云的公共API来调整集群的大小,你首先需要创建一个云API密钥。一旦你有了Cloud API密钥,你就可以使用 "Basic Auth "并访问集群更新API来增加或删除集群中的CKU。
下面的截图显示了将2个CKU集群扩展到4个CKU的细节。
2个CKU集群的细节
你可以在下面Postman的截图中看到将集群从2个CKU更新到4个CKU的API调用和响应。
集群从2个CKU更新到4个CKU
下一步是什么
这篇文章展示了Confluent Cloud专用Kafka集群的弹性操作,强调了使用Confluent Cloud的用户界面、CLI和API的用户体验,以及控制平面如何处理集群大小操作的细节。这篇博文还从用户的角度介绍了整体体验的某些关键方面。早先的一篇博文演示了如何删除经纪商并重新平衡Kafka集群上的数据。敬请期待即将发布的博文,它将从Confluent Cloud控制平面的角度详细介绍。同时,如果你已经准备好开始使用Confluent Cloud,使用促销代码CL60BLOG ,当你注册免费试用时,可以获得额外的60美元的免费使用权*。
提供自我服务能力来调整集群的大小是第一步。在未来,我们计划提供功能,在专门的Kafka集群上实现自动缩放。例如,用户将能够在他们的集群上设置策略,并根据这些策略自动调整集群的规模。这将进一步减少操作负担,并允许用户完全卸载容量管理,同时确保他们在需要时拥有所需的容量,而不必主动监测和采取行动来增加或删除容量。
Aashish Kohli是Confluent产品管理团队的一员,负责Confluent云的工作。在加入Confluent之前,Aashish在Splunk、Hewlett Packard和一些金融服务公司担任产品管理、工程和咨询职务。