- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
-
实例问题
- 为什么可用区不能选择2个?
- 创建实例时为什么无法查看子网和安全组等信息?
- 如何选择Kafka实例的存储空间?
- Kafka实例的超高IO和高IO如何选择?
- 如何选择Kafka实例存储容量阈值策略?
- Kafka服务端支持版本是多少?
- Kafka实例的ZK地址是什么?
- 创建的Kafka实例是集群模式么?
- Kafka实例是否支持修改访问端口?
- Kafka实例的SSL证书有效期多长?
- 如何将Kafka实例中的数据同步到另一个Kafka实例中?
- Kafka实例的SASL_SSL开关如何修改?
- SASL认证机制如何修改?
- 如何修改安全协议?
- 修改企业项目,是否会导致Kafka重启?
- 100MB/s的带宽怎样开启公网访问?
- Kafka服务和ZK是部署在相同的虚拟机中,还是分开部署?
- Kafka包周期实例支持删除吗?
- Kafka支持哪些加密套件?
- 购买实例时选择的单AZ,怎样可以扩展为多AZ?
- Kafka是否支持跨AZ容灾?已经购买的实例在哪里查看是否为跨AZ?
- Kafka支持磁盘加密吗?
- Kafka实例创建后,能修改VPC和子网吗?
- 有没有Kafka Stream的案例?
- Kafka实例版本可以升级吗?
- 怎样重新绑定公网IP?
- 实例规格变更问题
-
连接问题
- 选择和配置安全组
- Kafka实例是否支持公网访问?
- Kafka实例的连接地址默认有多少个?
- 是否支持跨Region访问?
- Kafka实例是否支持跨VPC访问?
- Kafka实例是否支持不同的子网?
- Kafka是否支持Kerberos认证,如何开启认证?
- Kafka实例是否支持无密码访问?
- 开启公网访问后,在哪查看公网IP地址?
- Kafka支持服务端认证客户端吗?
- 连接开启SASL_SSL的Kafka实例时,ssl truststore文件可以用PEM格式的吗?
- 下载的证书JKS和CRT有什么区别?
- Kafka支持哪个版本的TLS?
- Kafka实例连接数有限制吗?
- 客户端单IP连接的个数为多少?
- Kafka实例的内网连接地址可以修改吗?
- 不同实例中,使用的SSL证书是否一样?
- 为什么不建议使用Sarama客户端收发消息?
- Topic和分区问题
- 消费组问题
- 消息问题
-
Kafka Manager问题
- 登录Kafka Manager的账号是否可以设置为只读账号?
- 登录到Kafka Manager页面,为什么获取不到节点信息?
- Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again.
- Kafka Manager能否查询到消息的正文?
- Kafka Manager WebUI的端口能否修改?
- 在Kafka Manager上支持修改Topic的哪些属性?
- Kafka Manager和云监控显示的信息不一致
- Kafka Manager如何修改Topic的分区Leader?
- 实例版本在控制台和Kafka Manager上显示不一致?
- 为什么实例中存在默认名为__trace和__consumer_offsets的Topic?
- 客户端删除消费组后,在Kafka Manager中仍可以看到此消费组?
- 监控告警问题
- Kafka体验版使用说明
-
实例问题
- 故障排除
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
提高Kafka消息处理效率
消息发送和消费的可靠性必须由分布式消息服务Kafka版和生产者以及消费者协同工作才能保证。同时开发者需要尽量合理使用分布式消息服务Kafka版的Topic,以提高消息发送和消息消费的效率与准确性。
对使用分布式消息服务Kafka版的生产者和消费者有如下的使用建议:
重视消息生产与消费的确认过程
消息生产
发送消息后,生产者需要根据分布式消息服务Kafka版的返回信息确认消息是否发送成功,如果返回失败需要重新发送。
生产消息时,生产者通过同步等待发送结果或异步回调函数,判断消息是否发送成功。在消息传递过程中,如果发生异常,生产者没有接收到发送成功的信号,生产者自己决策是否需要重复发送消息。如果接收到发送成功的信号,则表明该消息已经被分布式消息服务Kafka版可靠存储。
消息消费
消息消费时,消费者需要确认消息是否已被成功消费。
生产的消息被依次存储在分布式消息服务Kafka版的存储介质中。消费时依次获取分布式消息服务Kafka版中存储的消息。消费者获取消息后,进行消费并记录消费成功或失败的状态,并将消费状态提交到分布式消息服务Kafka版。
在消费过程中,如果出现异常,没有提交消费确认,该批消息会在后续的消费请求中再次被获取。
消息生产与消费的幂等传递
分布式消息服务Kafka版设计了一系列可靠性保障措施,确保消息不丢失。例如使用消息同步存储机制防止系统与服务器层面的异常重启或者掉电,使用消息确认(ACK)机制解决消息传输过程中遇到的异常。
考虑到网络异常等极端情况,用户除了做好消息生产与消费的确认,还需要配合分布式消息服务Kafka版完成消息发送与消费的重复传输设计。
- 当无法确认消息是否已发送成功,生产者需要将消息重复发送给分布式消息服务Kafka版。
- 当重复收到已处理过的消息,消费者需要告诉分布式消息服务Kafka版消费成功且保证不重复处理。
消息可以批量生产和消费
为提高消息发送和消息消费效率,推荐使用批量消息发送和消费。


此外,批量消费消息时,消费者应按照接收的顺序对消息进行处理、确认,当对某一条消息处理失败时,不再需要继续处理本批消息中的后续消息,直接对已正确处理的消息进行确认即可。
巧用消费组协助运维
用户使用分布式消息服务Kafka版作为消息中间件,查看Topic的消息内容对于定位问题与调试服务是至关重要的。
当消息的生产和消费过程中遇到疑难问题时,通过创建不同消费组可以帮助定位分析问题或调试服务对接。用户可以创建一个新的消费组,对Topic中的消息进行消费并分析消费过程,这样不会影响其他服务对消息的处理。