从Java API连接Kafka AWS实例

时间:2019-07-17 14:56:14

标签: spring-boot apache-kafka spring-kafka

我试图通过本地Spring Boot API连接kafka aws实例。

我能够连接它,但是在听主题时,它抛出下面的异常,但是新主题是由Spring Boot API成功创建的 我也无法发布任何消息。

java.io.IOException: Can't resolve address: ip-xxx-xx-xx-xx.ec2.internal:9092
at org.apache.kafka.common.network.Selector.doConnect(Selector.java:235) ~[kafka-clients-2.0.1.jar:na]

Caused by: java.nio.channels.UnresolvedAddressException: null
    at sun.nio.ch.Net.checkAddress(Net.java:101) ~[na:1.8.0_192]
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:622) ~[na:1.8.0_192]
    at org.apache.kafka.common.network.Selector.doConnect(Selector.java:233) ~[kafka-clients-2.0.1.jar:na]
    ... 30 common frames omitted

2019-07-17 15:36:13.581  WARN 3709 --- [           main] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-1, groupId=group_id] Error connecting to node ip-172-31-80-50.ec2.internal:9092 (id: 0 rack: null)

我也允许该端口 自定义TCP规则 TCP协议 2181 0.0.0.0/0 自定义TCP规则 TCP协议 9092 0.0.0.0/0

server:
  port: 8081
spring:
  kafka:
    consumer:
      bootstrap-servers: xx.xx.xx.xx:9092
      group-id: group_id
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      bootstrap-servers: xx.xx.xx.xx:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer


@KafkaListener(topics = "ConsumerTest", groupId = "group_id")
    public void consume(String message) throws IOException {
        logger.info(String.format("#### -> Consumed message -> %s", message));
    }

1 个答案:

答案 0 :(得分:2)

  

java.io.IOException:无法解析地址:ip-xxx-xx-xx-xx.ec2.internal:9092

     

连接到节点ip-172-31-80-50.ec2.internal:9092时出错

当使用者连接到代理时,他们将获取他们正在从中读取数据的分区的代理的元数据。您的客户回来的是卡夫卡经纪人的advertised.listener。因此,当您使用代理的公共地址连接到代理时,代理会将计算机的内部地址返回给您的客户端。

要解决此问题,您需要在代理上正确设置侦听器。有关详情,请参见https://rmoff.net/2018/08/02/kafka-listeners-explained/