【发布时间】:2021-06-27 07:43:30
【问题描述】:
我在 kubernetes 集群中有这个 rabbitmq 服务和部署,我在浏览器中测试了它,我可以访问它。
但是我无法使用 node .js 实现与它的连接
我得到的错误是
[auth] OperationalError: connect ECONNREFUSED 127.0.0.1:8080
[auth] at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1137:16) {
[auth] cause: Error: connect ECONNREFUSED 127.0.0.1:8080
[auth] at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1137:16) {
[auth] errno: -111,
[auth] code: 'ECONNREFUSED',
[auth] syscall: 'connect',
[auth] address: '127.0.0.1',
[auth] port: 8080
[auth] },
[auth] isOperational: true,
[auth] errno: -111,
[auth] code: 'ECONNREFUSED',
[auth] syscall: 'connect',
[auth] address: '127.0.0.1',
[auth] p
这基本上意味着它拒绝连接。
我已尝试 kubectl port-forward rabbitmq-depl-64f964cbbb-tnwbj 8080:15672 将该 pod 暴露给外界并通过 connect('"amqp://127.0.0.1:8080") 连接到它,但它不起作用
我还尝试在我的 node.js 服务器 yaml 文件中映射该服务,例如
apiVersion: apps/v1
kind: Deployment
metadata:
name: verification-depl
spec:
replicas: 1
selector:
matchLabels:
app: verification
template:
metadata:
labels:
app: verification
spec:
containers:
- name: verification
image: sn/verification
env:
- name: NATS_CLIENT_ID
valueFrom:
fieldRef:
fieldPath: metadata.name # pod name as env for clinet id
- name: NATS_URL
value: 'http://nats-srv:4222'
- name: RABITMQ_URL
value: 'rabbitmq:15672'
- name: NATS_CLUSTER_ID
value: snsocial
- name: JWT_KEY
valueFrom:
secretKeyRef:
name: sn-jwt-secret
key: JWT_KEY
---
apiVersion: v1
kind: Service
metadata:
name: verification-srv
spec:
selector:
app: verification
ports:
- name: verification
protocol: TCP
port: 5000
targetPort: 5000
但没有运气。本地主机在浏览器上运行良好,但在我的服务中不起作用。我试着玩玩
const rbmqConnection = await amqp.connect(amqp://${SERVICE_URL})
但没有运气。 rabbitmq-depl.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq-depl
spec:
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: "rabbitmq:3-management"
ports:
- containerPort: 15672
- containerPort: 5672
env:
- name: RABBITMQ_ERLANG_COOKIE
value: "SWQOKODSQALRPCLNMEQG"
- name: RABBITMQ_DEFAULT_USER
value: "guest"
- name: RABBITMQ_DEFAULT_PASS
value: "guest"
- name: RABBITMQ_DEFAULT_VHOST
value: "/"
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
app: rabbitmq
spec:
type: LoadBalancer
ports:
- name: http
protocol: TCP
port: 15672
- name: amqp
protocol: TCP
port: 5672
selector:
app: rabbitmq
我在这里做错了什么。
您可以看到我的 nats 服务器工作正常,我可以毫无问题地连接到它,但我需要在集群中尝试 rabbitmq,因为它提供的消息存储与 nats 流不同。
谢谢
【问题讨论】:
标签: kubernetes rabbitmq yaml microservices