当前位置: 首页 > 知识库问答 >
问题:

Spring 启动应用程序无法连接到 kubernetes 集群上的 RabbitMQ

唐利
2023-03-14

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

有人试过这种设置吗?请帮帮忙。谢谢!

共有2个答案

路昆杰
2023-03-14

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

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

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

如果我没有正确理解你的问题,请告诉我。

祝你好运

公冶森
2023-03-14

假设dns名为rabbitmq。如果你想访问它,那么你必须确保rabbitmq的部署有一个附加了正确端口的服务,以便进行公开。因此,您将锁定http://rabbitmq:5672

为了确保这种或类似的东西存在,你可以调试k8s服务。运行< code > ku bectl get services | grep rabbit MQ 以确保该服务存在。如果是,那么通过运行“ku bectl get service rabbit MQ-service-name-o yaml”来获取服务YAML。最后,检查< code>spec.ports[]中允许您连接到pod的端口。在< code>spec.ports[]中搜索“5672”。amqp的端口。在某些情况下,端口可能已被更改。这意味着< code>spec.ports[]。例如,端口可能是3030,但是< code>spec.ports[]。目标港口是5672。

 类似资料:
  • 随着库伯内特斯集群的启动和运行,并且能够通过ssh键访问master并在那里运行kubectl命令;我想在我的本地机器上运行kubectl命令。所以我尝试按照kubectl配置设置配置: 激活上下文: 当我运行kubectl命令时: 它返回: 与服务器localhost:8080的连接被拒绝-是否指定了正确的主机或端口?

  • 我试图运行一个连接到本地独立spark集群的java应用程序。我使用start-all.sh以默认配置启动集群。当我转到集群的web页面时,它被启动为OK。我可以用SparkR连接到这个集群,但是当我使用相同的主URL从Java内部连接时,我会得到一条错误消息。 下面是Spark日志中的输出:

  • 我试图在我本地minikube集群上的一个简单示例中使用fabric8io/kubernetes-client,在这里我获得了一个pod的IP 是完成执行的pod的名称,如果执行则可见。 是一个kubernetes API主机,我从中获得该主机。 MiniKube只有1个节点。 Fabric8IO/Kubernetes-客户端版本为4.9.1 Java 11 我将此代码作为作业部署在的同一集群上。

  • 我已经使用以下指南成功地设置了一个密码保护的redis群集: 我使用ruby和下面的连接字符串…我做错了吗? 我得到的错误是:

  • 我目前正在创建一个API,它使用具有3个节点的Cassandra集群来存储数据。我使用PHP 5.6.17、Cassandra 2.2.3和Datastax PHP Driver 1.1.0在本地机器上开发它,一切都很顺利。 但是,我们决定迁移到远程 Cassandra 集群(带有本机协议 4 的 3.4),我无法通过 PHP 访问它,因为我收到以下错误:发生错误:16777226 - 没有可用于

  • 我已经在本地Kubernetes集群上部署了Spring Cloud Data Flow server。看起来一切都很好。然后创建一个类型的应用程序,提供Spring-Boot jar的URL。然后我创建一个任务“定义”并启动它。任务定义挂起状态为“正在启动”。 以下是我的发现: > 查看Kubernetes,我看到与正确创建但未能启动的任务对应的a pod,状态为 此pod配置有,日志显示消息: