我的公司运行了使用openshift部署的微服务项目。
现有服务成功连接到Rabbitmq服务及其上的代码,
spring.cloud.stream.rabbitmq.host: rabbitmq
spring.cloud.stream.rabbitmq.port: 5672
现在我正在开发新的服务,我的笔记本电脑尚未部署到openshift,现在我正在尝试连接到其他人的同一个经纪人,所以我为rabbitmq服务创建了新的路由5672作为它的端口
这是我的路线YAML:
apiVersion: v1
kind: Route
metadata:
name: rabbitmq-amqp
namespace: message-broker
selfLink: /oapi/v1/namespaces/message-broker/routes/rabbitmq-amqp
uid: 5af3e903-a8ad-11e7-8370-005056aca8b0
resourceVersion: '21744899'
creationTimestamp: '2017-10-04T02:40:16Z'
labels:
app: rabbitmq
annotations:
openshift.io/host.generated: 'true'
spec:
host: rabbitmq-amqp-message-broker.apps.fifgroup.co.id
to:
kind: Service
name: rabbitmq
weight: 100
port:
targetPort: 5672-tcp
tls:
termination: passthrough
wildcardPolicy: None
status:
ingress:
- host: rabbitmq-amqp-message-broker.apps.fifgroup.co.id
routerName: router
conditions:
- type: Admitted
status: 'True'
lastTransitionTime: '2017-10-04T02:40:16Z'
wildcardPolicy: None
当我试图用这个属性连接我的新服务时:
spring.cloud.stream.rabbitmq.host: rabbitmq-amqp-message-broker.apps.fifgroup.co.id
spring.cloud.stream.rabbitmq.port: 80
我的服务无法设置连接。
如何解决这个问题? 我应该在哪里修理它?我的服务路线或我的服务属性..?
感谢您的关注。
答案 0 :(得分:0)
如果您使用直通安全连接在群集外部公开非HTTP服务器,则您的服务必须终止TLS连接,并且您的客户端还必须支持SNI over TLS。你有这两个吗?现在看来你正试图在端口80上连接,这意味着它必须是HTTP。 RabbitMQ不是非HTTP吗?如果您只是尝试从同一个OpenShift集群中的前端应用程序连接到它,则不需要在rabbitmq上使用Route,使用'rabbitmq'作为主机名并使用端口5672。