java - 春季卡夫卡:UnknownHostException:34bcfcc207e0
问题描述
我为我的应用程序编写了 kafka 生产者/消费者:
消费者配置:
@EnableKafka
@Configuration
class KafkaConsumerConfig {
@Bean
fun consumerFactory(): ConsumerFactory<String, String> {
val props: MutableMap<String, Any> = HashMap()
props[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] = "http://localhost:9092"
props[ConsumerConfig.GROUP_ID_CONFIG] = "group12345"
props[ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java
props[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java
return DefaultKafkaConsumerFactory(props)
}
@Bean
fun kafkaListenerContainerFactory(): ConcurrentKafkaListenerContainerFactory<String, String> {
val factory = ConcurrentKafkaListenerContainerFactory<String, String>()
factory.consumerFactory = consumerFactory()
return factory
}
}
生产者配置:
@Configuration
class KafkaProducerConfig {
@Bean
fun producerFactory(): ProducerFactory<String, String> {
val configProps: MutableMap<String, Any> = HashMap()
configProps[ProducerConfig.BOOTSTRAP_SERVERS_CONFIG] = "http://localhost:9092"
configProps[ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
configProps[ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
return DefaultKafkaProducerFactory(configProps)
}
@Bean
fun kafkaTemplate(): KafkaTemplate<String, String> {
return KafkaTemplate(producerFactory())
}
}
主题配置:
@Configuration
class KafkaTopicConfig {
@Bean
fun kafkaAdmin(): KafkaAdmin {
val configs: MutableMap<String, Any?> = HashMap()
configs[AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG] = "http://localhost:9092"
return KafkaAdmin(configs)
}
@Bean
fun topic1(): NewTopic {
return NewTopic("kafkaTest", 1, 1.toShort())
}
}
卡夫卡服务:
@Service
class KafkaService(
private val kafkaTemplate: KafkaTemplate<String, String>
) {
fun send() {
kafkaTemplate.send("kafkaTest", "test message ${System.currentTimeMillis()}")
}
@KafkaListener(topics = ["kafkaTest"], groupId = "group12345")
fun listenGroupFoo(message: String) {
println("--> $message")
}
}
这是我的应用程序中的所有课程。当我尝试运行应用程序时,出现此异常:
2021-10-11 17:20:13.319 警告 8544 --- [| adminclient-1] org.apache.kafka.clients.NetworkClient : [AdminClient clientId=adminclient-1] 连接到节点 34bcfcc207e0:9092 时出错(id: 1001 rack: null)
java.net.UnknownHostException:34bcfcc207e0
我不知道,什么是 host 34bcfcc207e0
。它出现在开始或线程。
怎么了?
解决方案
Kafka 不是 HTTP 服务。
http://
从所有字符串中删除如果您在容器中运行 Kafka,则默认通告的侦听器使用其主机名(容器 ID),您需要将其更改为使用您期望的地址连接到在 Docker 中运行的 Kafka
推荐阅读
- azure - Microsoft Azure Maps / Postman 上传错误
- for-loop - 在元组中添加数字
- ios - 蓝牙键盘在 Flutter webview 上不起作用。(iOS + 硬件键盘)
- android - 什么是最近在 Android API 30 中过时的 Handler 的替代品?
- azure-devops - 如何从发布管道中调用 Azure Function 获得响应?
- c# - 使用 C# 将文件写入 Linux 中的网络位置
- c# - 在 C# Web 应用程序中获取文本框的值时面临的问题,详细信息如下:
- math - 贝叶斯滤波器推导混淆
- ios - 新手,求救!如何在 iCarousel 中显示歌曲专辑的封面?
- openstack - 使用真正的块存储后端作为 Cinder 后端来创建 Openstack VM