Kafka使用最佳实践-Kafka生产问题分析思路与解决方案
【摘要】 一、生产问题分析思路 二、数据无法正常写入,使用客户端无法正常生产数据首先使用生产命令进行生产测试。看是否是C80版本,确认是否有打入kafka死锁补丁,如果没有请打入。Kafka的服务端节点是否开启了DNS,如果开启请参照《kafka启动候不定时出现"恢复中"状态》解决。 根据章节查看topic是否正常(2.2章节),如果不正常优先恢复topic,参考维护宝典Topic操作常见故障章节...
一、生产问题分析思路
二、数据无法正常写入,使用客户端无法正常生产数据
- 首先使用生产命令进行生产测试。
- 看是否是C80版本,确认是否有打入kafka死锁补丁,如果没有请打入。
- Kafka的服务端节点是否开启了DNS,如果开启请参照《kafka启动候不定时出现"恢复中"状态》解决。
- 根据章节查看topic是否正常(2.2章节),如果不正常优先恢复topic,参考维护宝典Topic操作常见故障章节排查处理。
- 如果是21005生产,查看前台“everyone.if.no.acl.found”是否设置为true,并且是否添加了acl权限,如果是需要删除acl权限。参考4.2.3章节和维护宝典《Producer发送数据失败,抛出TOPIC_AUTHORIZATION_FAILED》解决。
- 如果使用了21009端口,需要查看是否开启mode.enable=true。
- 去每个节点执行df –h查看磁盘是否有写满的情况。如果磁盘写满参考《kafka磁盘写满后恢复策略》
- 查看报错中是否有指定那个节点哪个磁盘报错,如果有,去指定节点上执行touch filename 的命令看是否出现了磁盘只读的现象。
- 去每个kafka节点下,切换到omm用户,使用id –Gn kafka查看是否有异常,如果有请按照维护宝典“id -Gn查询不到用户,导致任务无法提交”章节解决。
- 其他问题:参照维护宝典“消息生产常见故障”排查。
三、集群内客户端可以正常生产消费,集群外客户端无法正常使用
- 检查网络环境是否正常。
- 使用ping命令查看是否有网络丢包
- 使用scp从客户端传输一个大文件到kafka服务侧节点,查看传输速率。
- 检查/etc/hosts里面是否配置kafka集群的IP列表。
- 检查DNS是否开启,cat /etc/resolv.conf 是否有值,或者在etc/hosts里面是否添加了不可达参数。例如:
- hadoop.com
- 查看客户端配置是否配置有异常。这里要特别注意配置domain.name,如果FI集群修改过域名(默认域名为hadoop.hadoop.com,如果修改,该配置必须在生产者配置中添加)。
- 查看集群acl列表,确认节点是否被禁用或者限流。方法见1.8章节《查看集群中所有的acl权限信息》。
- 其他问题:参照维护宝典“消息生产常见故障”排查。
四、 集群外客户端可以使用,但是开发的代码无法正常写入
- 检查生产端的配置是否有误。例如:所配置的IP是否为kafka的业务IP。
- 检查客户端使用的kafka版本是否有误,高版本的客户端向低版本的服务端写数据可能存在兼容性的问题。
- 使用安全模式生产消费时候,是否使用了正确的keytab。
- 使用安全模式并且everyone.if.no.acl.found为false 需要查看用户是否有权限访问。参考4.1.8章节。
- 如果使用的是C++客户端,需要注意5.1版本需要使用4.0.3或以上版本,否则会有兼容性问题。
- 其他问题:参照维护宝典“消息生产常见故障”排查。
五、写入正常,但是写入性能有积压或者一段时间后会报错中断
- 首先排查是否存在性能瓶颈;再排查写入请求总耗时及各阶段耗时,排查耗时长的阶段的具体原因。
- 查看生产的客户端版本是否跟服务端版本匹配。如果客户使用的客户端jar为非FI提供的jar包版本。
- 排查是否存在过大数据,kafka通常建议的数据大小在15k左右,如果出现过大数据可能会导致写入性能差。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)