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

提问说明

三个集群配置如下:(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
没有任何反应!






发表于: 10天前   最后更新时间: 10天前   游览量:89
上一条: 到头了!
下一条: 已经是最后了!

  • 为什么我这个环境这么麻烦啊,我看别人的帖子都很简单呢。。。
    按照你说的 改成内网了

    客户端报错如下
    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() 试试。

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