nsq的消费者通过nsqlookup连接nsqd发生的timeout的错误


报错如下:

error connecting to nsqd - dial tcp: i/o timeout

要弄明白这个错误,我们就得知道它的原因

在nsq中,如果消费者通过nsqlookup去连接nsqd从而获取消息中的数据,那个他的过程是如下的:

首先启动一个nsqlookup节点,用来维护,管理,发现nsqd节点

然后启动nsqd节点,nsqd节点启动的时候需要制定nsqlookup节点的地址,以及一个自身的广播地址参数

再然后生产者向指定的nsqd节点里面写入数据

之后消费者从nsqlookup中指定的topic里面找到对应的nsqd节点,并根据之前启动nsqd节点的广播地址去连接nsqd节点

最后,消费者连上nsqd节点以后就能够获取里面的数据了

再回到我们的错误

发生错误的原因是我启动nsqd节点的时候使用的指令如下:

nsqd --lookupd-tcp-address=127.0.0.1:4160

这里没有指定参数-broadcast-address参数,这个参数的作用就是将nsqd自身的地址发送给nsqlookup节点

所以我们重启nsqd节点就好了

nsqd --lookupd-tcp-address=127.0.0.1:4160 -broadcast-address='nsqd ip'

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM