java客户端生产消息,但是服务端不消费消息,求帮助。

zhujiang 发表于: 2019-05-10   最后更新时间: 2019-05-10  

提问说明

三个集群配置如下:(zk用的自带的)

s1.properties
broker.id=1
port=9093
zookeeper.connect=127.0.0.1:2181

s2.properties
broker.id=2
port=9094
zookeeper.connect=127.0.0.1:2181

s3.properties
broker.id=3
port=9095
zookeeper.connect=127.0.0.1:2181

没有报错信息,直接卡住不动了!


 Properties props = new Properties();
        props.put("bootstrap.servers", "111.231.54.216:9093,111.231.54.216:9094,111.231.54.216:9095");
                props.put("acks", "all");
                props.put("retries", 0);
                props.put("batch.size", 16384);
                props.put("linger.ms", 1);
                props.put("buffer.memory", 33554432);
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        Producer<String, String> producer = new KafkaProducer<>(props);
        for (int i = 0; i < 100; i++)
            try {
                 producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i)));
            } catch (Exception e) {
                System.out.println(e);
            }


        producer.close();

运行 kafka-console-consumer.sh --bootstrap-server localhost:9093 --from-beginning --topic my-topic
没有任何反应!



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容





发表于: 3月前   最后更新时间: 3月前   游览量:295
上一条: 生产者在生产消息的报错
下一条: kafka的消费进程存在,但阻塞不消费数据,查到一些分区无消费者

  • 为什么我这个环境这么麻烦啊,我看别人的帖子都很简单呢。。。

    按照你说的 改成内网了

    客户端报错如下
    java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for my-topic-0:120001 ms has passed since batch creation

    按照你说的 配置成 listeners=PLAINTEXT://111.231.54.216:9093
    报错如下:
    org.apache.kafka.common.KafkaException: Socket server failed to bind to 111.231.54.216:9093: Cannot assign requested address.

    加了 get( )不行

    listeners=PLAINTEXT://:9093

    请问 listener 这个地方应该怎么写?

    • 写了.get()是不是会提示报什么错误了? listeners=PLAINTEXT://111.231.54.216:9093 这样,消费者命令也改成 kafka-console-consumer.sh --bootstrap-server 111.231.54.216:9093 --from-beginning --topic my-topic

        1.加个.get()。
        producer.send(new ProducerRecord("my-topic", Integer.toString(i), Integer.toString(i))).get() 试试。

        1. 你的listener配置的是啥。为什么一个ip一个localhost。