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

 

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

上一篇:使用python连接CentOS7上的数据库


下一篇:Sqlite 3 的安装使用(入门必备!!)!为什么选择sqlite? sqlite3与 navicat premium, navicat premium安装 !!!