检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
考虑到网络异常等极端情况,用户除了做好消息生产与消费的确认,还需要配合分布式消息服务Kafka版完成消息发送与消费的重复传输设计。 当无法确认消息是否已发送成功,生产者需要将消息重复发送给分布式消息服务Kafka版。 当重复收到已处理过的消息,消费者需要告诉分布式消息服务Kafka版消费成功且保证不重复处理。
优化消费者轮询(Polling) 方案概述 应用场景 在分布式消息服务Kafka版提供的原生Kafka SDK中,消费者可以自定义拉取消息的时长,如果需要长时间的拉取消息,只需要把poll(long)方法的参数设置合适的值即可。但是这样的长连接可能会对客户端和服务端造成一定的压力,特别是分区数较多且每个消费者开启多个线程的情况下。
在大型业务系统设计中,为了快速定位问题,全链路追踪日志,以及故障及时预警监控,通常需要将各系统应用的日志集中分析处理。 Kafka设计初衷就是为了应对大量日志传输场景,应用通过异步方式将日志消息同步到消息服务,再通过其他组件对日志做实时或离线分析,也可用于关键日志信息收集进行应用监控。 日志同步主要有
1分钟 broker_alive 节点存活状态 表示Kafka节点是否存活。 2020年4月及以后购买的实例,支持此监控项。 1:存活 0:离线 Kafka实例节点 1分钟 broker_connections 连接数 统计Kafka节点当前所有TCP连接数量。 单位:Count
堆积消息数。“LAG”表示每个Topic的总堆积数。 图1 查看每个Topic的总堆积数 如果Kafka实例开启SASL认证,则以上命令还需要增加SASL认证的“consumer.properties”配置文件参数: --command-config {SASL认证的consumer
区分业务使用不同消费组。 需要客户侧排查自身业务,优化自身业务处理逻辑,提高处理效率,降低阻塞时间。 背景知识介绍 消费组可以简单认为有两种状态REBALANCING和STABILIZED。 REBALANCING:消费组元数据发生变化,该状态下消费组中的所有消费者都无法进行正常的业务消
败,无法重新拉取处理失败的消息。 通常不建议对每条消息都进行commit,如果对每条消息都进行了commit,会导致OFFSET_COMMIT请求过多,进而导致CPU使用率过高。例如:如果一个消费请求拉取1000条消息,每条都commit,则commit请求TPS是消费的1000
式进行认证,数据通过SSL证书进行加密传输,安全性更高。此时需要配置连接实例的用户名和密码,以及证书文件。 安全协议设置为“SASL_PLAINTEXT”时,采用SASL方式进行认证,数据通过明文传输,性能更好。此时需要配置连接实例的用户名和密码,无需配置证书文件。 sasl.m
实例规格变更问题 Kafka扩容/缩容会影响业务吗? 扩容过程中涉及数据迁移吗? 扩容/缩容过程中生产消息失败 扩容失败提示资源不足
高可靠:all或者-1 高吞吐:1 收到Server端确认信号个数,表示producer需要收到多少个这样的确认信号,算消息发送成功。acks参数代表了数据备份的可用性。常用选项: acks=0:表示producer不需要等待任何确认收到的信息,副本将立即加到socket buffer并认为已经
新创建的Topic才会分布在新代理上,原有Topic还分布在原有代理上,造成分区分布不均匀。通过修改分区平衡,实现将原有Topic分区的副本迁移到新代理上。 存储空间 扩容存储空间有次数限制,只能扩容20次。 扩容存储空间不会影响业务。 代理规格 若Topic为单副本,扩容/缩容期
全协议设置为“SASL_SSL”,需要设置此参数。使用Python语言连接实例时,需要用CRT格式的证书。 sasl_mechanism:SASL认证机制。在Kafka实例控制台的基本信息页面中获取。如果SCRAM-SHA-512和PLAIN都开启了,根据实际情况选择其中任意一种
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。
用。 当前CTS记录的操作,请参考云审计日志。 虚拟私有云(Virtual Private Cloud) Kafka实例运行于虚拟私有云,需要使用虚拟私有云创建的IP和带宽。通过虚拟私有云安全组的功能可以增强访问Kafka实例的安全性。 弹性云服务器(Elastic Cloud Server)
约束与限制 是否需要创建消费组、消费者、生产者 “auto.create.groups.enable”为“true”时,不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 “auto.create.groups.enable”为“false”时,需要手动创建消费组,不需要单独创建生产者和消费者。
ssl_truststore_password:服务器证书密码,不可更改,需要保持为dms@kafka。 ssl_endpoint_identification_algorithm:证书域名校验开关,为空则表示关闭。这里需要保持关闭状态,必须设置为空。 如果需要了解Kafka output Plugin的其他参数,请参见Kafka
truststore.password为服务器证书密码,不可更改,需要保持为dms@kafka。 ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭。这里需要保持关闭状态,必须设置为空。 SASL_PLAINTEXT:在Ka
Kafka扩容了Broker节点,新增的节点没有分配分区,会导致节点间的数据不均衡。 业务使用过程中随着集群状态的变化,多少会发生一些Leader副本的切换或迁移,会导致个别Broker节点上的数据更多,从而导致节点间的数据不均衡。 实施步骤 业务数据不均衡的处理措施: 优化业务中Topic的设计,
Kafka实例是否需要创建消费组、生产者和消费者? “auto.create.groups.enable”为“true”时,不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 “auto.create.groups.enable”为“false”时,需要手动创
Redis实例地址。(仅源端类型为Redis时需要填写) redis_type 否 String Redis实例类型。(仅源端类型为Redis时需要填写) dcs_instance_id 否 String DCS实例ID。(仅源端类型为Redis时需要填写) redis_password 否