kubernetes NatsError:无法连接到服务器:错误:连接EASP.REFUSED错误

rm5edbpk  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(155)

我在Kubernetes集群上创建了一个NATS流服务器。
Kubectl get services”输出如下:

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
api-gateway-srv      NodePort    10.106.100.181   <none>        8080:30440/TCP      16m
auth-mongo-srv       ClusterIP   10.101.9.123     <none>        27017/TCP           16m
auth-srv             ClusterIP   10.102.227.91    <none>        3000/TCP            16m
radio-srv            ClusterIP   10.111.20.153    <none>        3003/TCP            16m
kubernetes           ClusterIP   10.96.0.1        <none>        443/TCP             3d13h
tv-srv               ClusterIP   10.111.88.212    <none>        3001/TCP            16m
nats-srv             ClusterIP   10.105.230.126   <none>        4222/TCP,8222/TCP   16m

在我的nats-jumsher.js文件上这样写:

const nats = require('node-nats-streaming');

const stan = nats.connect('natsserver', 'nats-cli1', {
    url: 'nats://nats-srv:4222'
});
stan.on('connect', () => {
    console.log('Links publisher connected to NATS')
}, (err, guid) => {
    if(err) console.log(err)
    else console.log(guid)
})

我得到:
NatsError:无法连接到服务器:错误:连接ECONREFUSED 10.105.230.126:4222
但在另一个服务,我使用相同的连接代码为nats连接。该服务可以成功连接nats服务器。
为什么我得到这个错误?相同的代码在另一个服务上正确运行,但此代码如何从此服务崩溃?

kadbb459

kadbb4591#

使用kubectl port-forward [pod_name] 4222:4222时
您可以在终端上看到下一行:

Forwarding from 127.0.0.1:4222 -> 4222
Forwarding from [::1]:4222 -> 4222

在配置中使用127.0.0.1:4222

3lxsmp7m

3lxsmp7m2#

我也犯了同样的错误。经过搜索,我发现我的服务是在nats之前开始的,这是造成问题的原因。您可以通过将waitOnFirstConnect属性设置为true来告诉nats等待。
下面是代码示例

this._client = nats.connect(clusterId, clientId, { url, waitOnFirstConnect: true })

相关问题