【问题标题】:spring cloud stream kafka client excetion春季云流kafka客户端异常
【发布时间】:2019-04-24 10:43:32
【问题描述】:

我使用 spring-cloud-starter stream-kafka 连接到 kafka,版本 2.1.2。当我在k8s集群中启动服务时,前几个都可以连接成功。后续项目出现以下错误:

org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185)
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:893)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
    at com.zynn.service.module.user.ZynnServiceModuleUserApplication.main(ZynnServiceModuleUserApplication.java:15)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

我需要一些帮助。欢迎任何建议。谢谢

【问题讨论】:

  • 没有关于您的环境的任何详细信息很难判断,因此请考虑使用谷歌搜索 "org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata" . SSL?错误的 URL/端口?等等。有很多参考资料和解决方案,所以也许它会有所帮助。
  • 没有开启SSL,这是我刚刚安装的默认kafka,部分项目启动成功,这是我困惑的点
  • 也许您可以创建一个重现问题的示例项目并将其推送到 Github 以便我们查看?
  • 很抱歉我不能这样做,因为我不知道它是否会起作用,它似乎是随机的,但我发现了这个:stackoverflow.com/questions/49421979/…
  • 如前所述,如果项目在k8s集群中运行,而kafka在docker容器外运行,会不会是这个问题?

标签: apache-kafka spring-cloud-stream


【解决方案1】:

我找到了错误的原因。我必须配置项“spring.kafka.bootstrap-servers”和项“spring.cloud.stream.kafka.binder.brokers”,否则我会创建一个指向localhost:9092的连接,这个连接是无法连接的,所以在我同时配置之后,项目就可以工作了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2021-09-08
    • 2020-03-29
    • 1970-01-01
    • 2014-12-13
    相关资源
    最近更新 更多