kafka 异常总结

1、Error: Executing consumer group command failed due to org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
查询topic消费情况的时候,出现了该异常
排查:
确认zookeeper没有问题,查看kafka的日志server.log
出现类似错误 ERROR [KafkaApi-3] Number of alive brokers ‘0’ does not meet the required replication factor ‘3’ for the offsets topic (configured via ‘offsets.topic.replication.factor’). This error can be ignored if the cluster is starting up and not all brokers are up yet. (kafka.server.KafkaApis)
解决:一一重启kafka集群中有类似错误的实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验环境: - Kafka版本:2.12-2.0.0 - JDK版本:1.8.0_211 - IDE版本:IntelliJ IDEA 2020.1.2 实验过程: 1. 创建一个Kafka主题 首先,我们需要创建一个Kafka主题来存储我们的消息。我们可以使用Kafka自带的命令行工具kafka-topics.sh来创建主题。执行以下命令: ``` ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test ``` 这个命令将在本地Kafka服务器上创建一个名为“test”的主题,它只有一个分区和一个副本分区。 2. 编写生产者代码 在Java中,我们可以使用Kafka提供的KafkaProducer类来创建一个生产者。以下是一个简单的生产者实现: ```java import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import java.util.Properties; public class ProducerExample { public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); // Kafka服务器地址和端口号 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); // 消息键序列化类 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); // 消息值序列化类 KafkaProducer<String, String> producer = new KafkaProducer<>(props); // 创建一个Kafka生产者 String topic = "test"; // Kafka主题名称 String message = "Hello, Kafka!"; // 消息内容 ProducerRecord<String, String> record = new ProducerRecord<>(topic, message); // 创建一个生产者记录 producer.send(record); // 发送消息 producer.close(); // 关闭生产者 } } ``` 这个实现非常简单,它创建了一个KafkaProducer对象,设置了Kafka服务器地址和端口号、消息键序列化类和消息值序列化类。然后,它创建了一个ProducerRecord对象,该对象包含了要发送的消息的主题和内容,并将该对象发送到Kafka服务器。 3. 运行生产者代码 我们可以使用以下命令编译和运行上面的代码: ``` javac ProducerExample.java java ProducerExample ``` 如果一切正常,那么你应该会在Kafka服务器的日志中看到以下输出: ``` [2019-07-12 13:44:07,634] INFO [Producer clientId=producer-1] Sending record {test=Hello, Kafka!} with callback org.apache.kafka.clients.producer.internals.RecordBatch$1@6a5fc7e (org.apache.kafka.clients.producer.internals.Sender) ``` 这表明消息已成功发送到Kafka服务器。 实验总结: 在本次实验中,我们学习了如何在Java中使用KafkaProducer类来实现Kafka生产者。我们创建了一个Kafka主题,并使用KafkaProducer类发送消息到该主题。这个实现非常简单,只需要几行Java代码就可以完成。在实际应用中,我们可能需要使用更复杂的实现来处理更多的业务逻辑和异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值