![](/img/trans.png)
[英]How can I create a topic on Event Hub/Kafka using the AdminClient?
[英]Impossible to create a topic on KAFKA
我尝试使用 spring 启动 JAVA 在 apache KAFKA 上自动创建一个主题。为此,我遵循了本教程: https://www.baeldung.com/spring-kafka但我设法连接到服务器,但我无法创建一个话题。 KAFKA 服务器托管在 EC2 AWS 实例上。
这里是在Intellij控制台得到的错误的一部分
022-05-08 10:21:22.889 WARN 20424 --- [| adminclient-1] org.apache.kafka.clients.NetworkClient : [AdminClient clientId=adminclient-1] Error connecting to node ip-172-31-XX-XX.eu-west-2.compute.internal:9092 (id: 0 rack: null)
java.net.UnknownHostException: ip-172-31-XX.XX.eu-west-2.compute.internal
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298) ~[na:na]
at org.apache.kafka.clients.DefaultHostResolver.resolve(DefaultHostResolver.java:27) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.ClientUtils.resolve(ClientUtils.java:110) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.currentAddress(ClusterConnectionStates.java:511) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.access$200(ClusterConnectionStates.java:468) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.ClusterConnectionStates.currentAddress(ClusterConnectionStates.java:173) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:979) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.NetworkClient.ready(NetworkClient.java:301) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.sendEligibleCalls(KafkaAdminClient.java:1127) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.processRequests(KafkaAdminClient.java:1387) ~[kafka-clients-3.0.1.jar:na]
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1330) ~[kafka-clients-3.0.1.jar:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
这是我的代码:
@Configuration
public class KafkaTopicConfig {
@Value(value = "${kafka.bootstrapAddress}")
private String bootstrapAddress;
@Bean
public KafkaAdmin kafkaAdmin() {
Map<String, Object> configs = new HashMap<>();
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
return new KafkaAdmin(configs);
}
@Bean
public NewTopic topic1() {
return new NewTopic("baeldung", 1, (short) 1);
}
}
我找到了解决方案,我没有正确配置 Apache KAFKA 的 config/server.properties 文件。 取消注释以下行:listeners=PLAINTEXT://:9092 advertised.listeners=PLAINTEXT://your.host.name:9092
将“you.host.name”替换为安装了 Apache KAFKA 的 EC2 服务器的“公共 ip 地址”。 打开端口 9092。
listeners 是代理将用来创建服务器 sockets 的内容。
advertised.listeners 是客户端用来连接到代理的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.