Kafka producer无法发送消息解决办法

在虚拟机搭建了kafka集群,在集群内使用Shell可以成功发送消息创建Topic。
但是在外部使用API无法发送消息,但是能创建topic
具体原因

Hostname and port the broker will advertise to producers and consumers. If not set, it uses the value for “listeners” if configured. Otherwise, it will use the value returned from java.net.InetAddress.getCanonicalHostName().

所以将

#advertised.listeners=PLAINTEXT://your.host.name:9092

修改为

advertised.listeners=PLAINTEXT://192.168.84.136:9092
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
要使用Kafka Producer发送消息,您需要按照以下步骤进行操作: 1. 首先,确保您已经安装并配置了Kafka。您可以从Apache Kafka官方网站下载和安装Kafka。 2. 创建一个Kafka Producer实例,并配置所需的参数,如Kafka集群的地址和端口号。 3. 使用Producer实例创建一个或多个ProducerRecord对象,该对象包含要发送消息及其相关信息,如topic名称、消息键和值。 4. 使用Producer实例的send()方法将ProducerRecord发送Kafka集群。 以下是一个示例代码片段,演示如何使用Java编写的Kafka Producer发送消息: ```java import org.apache.kafka.clients.producer.*; import java.util.Properties; public class KafkaProducerExample { public static void main(String[] args) { // Kafka集群的地址和端口号 String bootstrapServers = "localhost:9092"; // 配置Producer的参数 Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); // 创建Kafka Producer实例 Producer<String, String> producer = new KafkaProducer<>(props); // 创建要发送消息 String topic = "your_topic"; String key = "your_key"; String value = "your_message"; ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, value); // 发送消息Kafka集群 producer.send(record, new Callback() { @Override public void onCompletion(RecordMetadata metadata, Exception exception) { if (exception != null) { System.err.println("Error sending message: " + exception.getMessage()); } else { System.out.println("Message sent successfully! Topic: " + metadata.topic() + ", Partition: " + metadata.partition() + ", Offset: " + metadata.offset()); } } }); // 关闭Kafka Producer producer.close(); } } ``` 请注意,以上示例仅供参考,您需要根据您的实际情况进行适当的配置和修改。此外,还可以根据您选择的编程语言使用相应的Kafka客户端库来发送消息
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值