【问题标题】:Spring boot app cannot connect to RabbitMQ on kubernetes ClusterSpring Boot 应用程序无法连接到 kubernetes 集群上的 RabbitMQ
【发布时间】:2020-03-07 16:25:10
【问题描述】:

我在我的 kubernetes 集群上部署了一个 RabbitMQ 服务器,我能够从浏览器访问管理 UI。但是我的 Spring Boot 应用程序无法连接到端口 5672,并且出现连接被拒绝错误。如果我将我的 application.yml 属性从 kuberntes 主机替换为 localhost 并在我的机器上运行 docker 映像,则相同的代码可以工作。我不确定我做错了什么?

有没有人尝试过这种设置。 请帮忙。谢谢!

【问题讨论】:

  • 分享你的 springboot 和 rabbitmy yaml 文件。需要审查文件并确定根本原因

标签: spring-boot spring-mvc kubernetes rabbitmq


【解决方案1】:

假设 dns 名为 rabbitmq。如果您想访问它,那么您必须确保rabbitmq 的部署具有附加的服务,该服务具有正确的端口以进行公开。所以你会定位到http://rabbitmq:5672

为了确保这个或类似的东西存在,你可以调试 k8s 服务。运行kubectl get services | grep rabbitmq 以确保服务存在。如果是,则通过运行“kubectl get service rabbitmq-service-name -o yaml”获取服务 yaml。最后,检查spec.ports[] 以获取允许您连接到 pod 的端口。在 spec.ports[].port 中搜索“5672”以获得 amqp。在某些情况下,端口可能已更改。这意味着 spec.ports[].port 可能是 3030,但 spec.ports[].targetPort 是 5672。

【讨论】:

    【解决方案2】:

    您是否将 rabbitMQ 的 TCP 端口暴露给集群外部?

    也许只有管理端口暴露了。

    如果您可以连接到管理 UI,但无法连接到端口 5672,则可能表明您的 5672 端口未暴露在集群之外。

    Obs:如果我不能正确理解您的问题,请告诉我。

    祝你好运

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      相关资源
      最近更新 更多