检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助用户轻松使用Kafka。 表1 Kafka最佳实践一览表 最佳实践 说明 提高Kafka消息处理效率 本章节提供了生产者和消费者对于消息的使用建议,以提高消息发送和消息消费的效率与可靠性。 优化消费者轮询(Polling)
磁盘类型支持高I/O、超高I/O、极速型SSD和通用型SSD,更多磁盘信息请参考如何选择磁盘类型。 图1 综合推荐 规格测算:系统根据您选择的版本号和输入的参数(生产流量峰值、消费流量、单个Topic副本数、总分区数和老化时间内的生产消息量),为您计算出不同规格所需的代理个数和代理存储空间,您根据实际情况选择。
Kafka业务使用流程 分布式消息服务Kafka版是一款基于开源社区版Kafka提供的消息队列服务,向用户提供计算、存储和带宽资源独占式的Kafka实例。使用Kafka实例生产消费消息的流程如下图所示。 图1 Kafka业务使用流程 创建用户并授权使用DMS for Kafka 创建IAM用户,并授予DMS
Topic配置 本章节指导您在控制台修改如表1所示Kafka Topic的配置。 修改同步复制、同步落盘、消息时间戳类型、批处理消息最大值和描述,不会重启实例。 表1 Kafka Topic的配置参数 参数名称 说明 分区数 Topic的分区数,修改方法请参见修改Kafka Topic分区数。
有一个或多个副本,分布在不同的Broker节点上,每个副本存储一份全量数据,副本之间的消息数据保持同步。Kafka的Topic、分区、副本和代理的关系如下图所示: 在实际业务过程中可能会遇到各节点间或分区之间业务数据不均衡的情况,业务数据不均衡会降低Kafka集群的性能,降低资源使用率。
企业只有了解组织中哪些方面产生了成本,才能正确地控制和优化成本。成本中心支持使用“成本分析”的汇总和过滤机制可视化企业的原始成本和摊销成本,从而通过各种角度、范围分析成本和用量的趋势及驱动因素。 企业还可以通过成本中心的“成本监控”,及时发现计划外费用,做到成本的可监控、可分析和可追溯。 详细介绍请参见通
CPU使用率高的处理措施: 优化线程参数num.io.threads、num.network.threads和num.replica.fetchers的配置。 num.io.threads和num.network.threads建议配置为磁盘个数的倍数,但不能超过CPU核数。 num.replica
根据实际业务需求,合理增加消费者个数(消费并发度),确保分区数/消费者数=整数,建议消费者数和分区数保持一致。 提高消费者的消费速度,通过优化消费者处理逻辑(减少复杂计算、第三方接口调用和读库操作),减少消费时间。 增加消费者每次拉取消息的数量:拉取数据/处理时间 >= 生产速度。
付订单后即可完成续费。 统一包年/包月资源的到期日 如果您持有多台到期日不同的Kafka实例,可以将到期日统一设置到一个日期,便于日常管理和续费。 图5展示了用户将两个不同时间到期的资源,同时续费一个月,并设置“统一到期日”后的效果对比。 图5 统一到期日 更多关于统一到期日的规则请参见如何设置统一到期日。
时测试、科学计算。 适用计费项 分布式消息服务Kafka版对您选择的Kafka实例和Kafka的磁盘存储空间收费。以下计费项支持按需计费。 表1 适用计费项 计费项 说明 实例费用 包括代理规格和代理数量。 如果开启Smart Connect,实例需要另外收取用于Smart Connect的代理费用。
消费组问题 Kafka实例是否需要创建消费组、生产者和消费者? 如果消息组中没有在线的消费者(如empty状态),是否14天后会自动被删除? 为什么删除消费组不生效? 实例消费正常,为什么看不到消费者? Kafka可以删除消费组下不用的Topic吗?
测试Kafka实例TPS 通过以下几个场景,测试不同实例规格的TPS。 测试场景一(实例是否开启SASL):相同的Topic,实例分为开启SASL和未开启SASL 测试场景二(同步/异步复制):相同的实例,不同复制机制的Topic 测试场景三(是否同步落盘):相同的实例,不同落盘机制的Topic
consumer不能频繁加入和退出group,频繁加入和退出,会导致consumer频繁做rebalance,阻塞消费。 同一消费组内consumer数量不能超过该消费组订阅的分区总数,否则会有consumer拉取不到消息。 consumer需周期poll,维持和server的心跳,避
以进行分区平衡,建议预留足够的带宽进行分区平衡,CPU使用率在90%以上时,不建议进行分区平衡。Topic的数据量和CPU使用率可以通过监控页面的“队列数据容量”和“CPU使用率”查看,具体步骤请参考查看Kafka监控数据。 带宽限制是指设定Topic进行副本同步的带宽上限,确保
kafka-go的代码库相对较小,依赖较少,可以减少应用程序的体积和依赖关系。 Kafka-go相对于Confluent-Kafka-go来说,功能较为有限,不支持一些高级特性和复杂的配置选项。 性能和吞吐量较低,适用于一些对性能要求不高的简单应用场景。 Sarama Sarama采用原生Golang语言编写,对于异步以及高并发操作支持度较好。
Connect迁移业务,会对源端Kafka进行消费,对目标端Kafka进行生产,会占用源端和目标端Kafka的带宽。 出于性能考虑,Smart Connect实时同步源端和目标端的数据,但是消费进度是通过批处理同步的,可能会导致源端和目标端每个分区的消费进度存在0-100之间的差异。 迁移准备 配置网络环境。
RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。 支持多种语言的客户端。 流量控制 RocketMQ 5.x支持基于实例规格的流量控制。 支持client、user和Topic级别,通过主动设置可将流控作用于生产者或消费者。 R
如果“偏移量”设置为“-1”,表示删除分区中所有的消息。 如果您输入的偏移量不在指定分区的最早偏移量和最晚偏移量之间,消息将不会被删除。 如果需要删除多个分区的消息,单击“添加分区”,设置需要删除消息的分区和偏移量。每次最多可选择10个分区。 单击“确定”,弹出“清理结果”对话框,单击“确定”,完成消息的删除。
管理消费组 创建Kafka消费组 查看Kafka消费组信息 查看Kafka消费者信息 查看和重置Kafka消费进度 查看Kafka重平衡日志 修改Kafka消费组信息 导出Kafka消费组列表 删除Kafka消费组
每个分区都随机挑选一个副本作为Leader,该分区所有消息的生产与消费都在Leader副本上完成,消息从Leader副本复制到其他副本(Follower)。 Kafka的主题和分区属于逻辑概念,副本与代理属于物理概念。下图通过消息的生产与消费流向,解释了Kafka的分区、代理与主题间的关系。 图1 Kafka消息流