三(1)、用kafka遇到的问题

本文介绍在CDH集群中配置Kafka的过程,包括创建topic、使用producer和consumer,以及解决常见的错误,如复制因子不匹配、socket请求字节限制和连接协调器失败等问题。

1、cdh里面加入kafka,
创建topic:
kafka-topics --zookeeper node01:2181 --create –replication-factor 1 --partitions 1 --topic from_flume01

producer写入数据:
kafka-console-producer --broker-list node01:9092 --topic from_flume01

consumer消费数据:
kafka-console-consumer --bootstrap-server node01:9092 --topic from_flume01
但是消费者消费不出来数据

查看日志里面报错:
2019-03-13 16:50:01,068 ERROR kafka.server.KafkaApis: [KafkaApi-48] Number of alive brokers ‘1’ does not meet the required replication factor ‘3’ for the offsets topic

因为我虚拟机搭建的是单节点cdh,即使在创建topic的时候,命令里面指定了1个备份数,但是因为cdh里面默认指定了3,所以才报了这个错。
解决办法:
去到cm,kafka配置里面更改备份数
在这里插入图片描述
重启kafka,然后再使用producer、consumer,能正常使用了

2、报错
[SocketServer brokerId=173] Unexpected error from /192.168.74.80; closing connection
org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 218762506 larger than 104857600)

查找的答案是跟kafka socket.request.max.bytes设置有关。
参数参考:https://www.cnblogs.com/zhjh256/p/11369165.html
#socket请求的最大字节数。为了防止内存溢出,message.max.bytes必然要小于
socket.request.max.bytes = 104857600

message.max.bytes # kafka server接收的最大消息大小

3、执行kafka消费命令的时候,虽然命令里面bootstrap-server写的是ip地址,但是还是报错:
kafka Marking the coordinator papp18:9092 (id: 2147483647 rack: null) dead
其中papp18是kafka服务器的hostname
解决:在hosts文件中配置ip、hostname,再重新执行kafka消费命令就可以了

Kafka 在分布式消息系统中被广泛使用,但确实可能遇到重复消费的问题。这种情况通常是由于以下几种原因导致的: 1. 消费者提交偏移量不准确:Kafka 使用偏移量(offset)来跟踪消费者消费的位置。如果消费者提交的偏移量不准确,可能会导致重复消费。例如,消费者在处理消息后未能正确提交偏移量,或者提交的偏移量被覆盖或丢失。 2. 消费者失败和重启:如果消费者失败或重启,可能会导致它从之前的偏移量重新开始消费消息,从而导致重复消费。 3. 消费者组协调器故障:Kafka 使用消费者组(consumer group)来进行消息负载均衡和协调。如果消费者组协调器发生故障或重启,可能会导致消费者重新加入消费者组并从之前的偏移量重新开始消费,引发重复消费。 为了解决重复消费的问题,可以考虑以下几个方法: 1. 使用自动提交偏移量:Kafka 提供了自动提交偏移量的选项,可以让 Kafka 自动处理偏移量的提交。这样可以降低手动提交偏移量时出错的风险。 2. 手动管理偏移量:可以在消费者代码中手动管理偏移量的提交。确保在处理完消息后,正确提交对应的偏移量。 3. 使用唯一的消费者组 ID:为每个消费者组使用唯一的 ID,这样即使发生消费者失败和重启,也能避免重复消费。 4. 设置适当的消息处理语义:Kafka 提供了不同的消息处理语义,如至少一次(at least once)和最多一次(at most once)语义。根据应用场景选择适当的消息处理语义,以满足业务需求。 总之,通过合理地管理偏移量,并采取适当的措施来处理消费者失败和重启,可以减少或避免 Kafka 中的重复消费问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值