问题标签 [nsq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
671 浏览

python - 避免 pynsq 中的消息超时

例如,我通过发出以下命令向 NSQ 发送消息:

我发现如果消息处理程序执行时间超过 100 秒,它将抛出并且该消息将超时。

我能做些什么来避免这种超时?

这是我的代码:

谢谢。

0 投票
1 回答
2714 浏览

docker - nsq 无法通过连接到 nsqlookupd 来消费消息

我尝试使用 docker-compose 来运行 nsq,docker-compose.yml如下:

我使用的是nsq客户端go-nsq来生产和消费消息,消息可以直接连接nsqd来消费,但是不能通过连接nsqlookupd来消费:

我可以连接到 nsqlookup 实例:

源代码链接:

https://gist.github.com/liuzxc/1baf85cff7db8dee8c26b8707fc48799

环境:

有什么想法吗?

0 投票
0 回答
58 浏览

database - 将数据从 Elastic Search 移至 NSQ,然后移至 Mysql 数据库

我有一个用例,我们使用扫雪机分析从各种 api 和网页获取数据,由于一些限制(扫雪机),我们只能通过 NSQ 通道将数据获取到 ES。

有没有办法将数据从弹性搜索移动到像posegres或mysql这样的SQL数据库,或者通过ES到NSQ,然后到MYSQL。

我试着用谷歌搜索了很多,但是在 ES 上寻找某种触发器时我什么也得不到,这样我们就可以根据它来填充我们的 mysql 数据库,请帮忙

0 投票
1 回答
295 浏览

ruby-on-rails - Ruby nsq 如何监听新消息

我的设置如下: 1 接收请求并在队列(nsq)中写入消息的微服务和必须读取队列中的消息并根据它们执行某些操作的第二个微服务。

我对 ruby​​ on rails 中的 nsq 概念不熟悉。我已经从这里安装了 nsq:http: //nsq.io/overview/quick_start.html。我还使用这个 gem 来促进消息推送:https ://github.com/wistia/nsq-ruby 。

我已经能够将消息排队。这部分很容易。

问题:

我如何始终在第二个微服务中侦听以找出何时推送某些内容以便我可以使用它?

这就是我推送消息的方式:

0 投票
0 回答
341 浏览

java - 为什么消息在 NSQ 中延迟?没想到……

我在我的项目中使用NSQ作为mq,java生产者将消息生成到NSQ并去消费者消费它。但奇怪的是消费者总是在几秒钟后收到消息。只有几条消息,我真的不不知道怎么解释为什么会这样。下面是测试结果,请注意时间。它们都消耗相同的主题。你可以在第二次看到,Go 比 java 慢了 7s。Java结果:

信息 | 虚拟机 1 | 2018/07/11 17:22:01 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

信息 | 虚拟机 1 | 2018/07/11 17:22:11 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

信息 | 虚拟机 1 | 2018/07/11 17:23:21 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

信息 | 虚拟机 1 | 2018/07/11 17:25:31 | Msg receive:{"did":"XSQ000200000005","msg":{"id":"5560","type":1,"content":"ZBINh6CBsLw7k2xjr1wslSjY+5QavEgYU6AzzLZn0lOgON9ZYHnNP4UJVUGB+/SpsxZQnrWR9PlULzpSP/p9l9t8wiAwj8qhznRaT8jeyx1/EUrDE0oXJB8GxWaLJUICCbC92j4BMA2HU8vgcfDOp9nSy1KFafi9zgFiCf9Igqo="}}

去结果:

2018-07-11 17:22:03 broker.go DEBUG 准备将类型 1 的 msg 5560 发送到 XSQ000200000005

2018-07-11 17:22:28 broker.go DEBUG 准备将类型为 1 的 msg 5560 发送到 XSQ000200000005

2018-07-11 17:23:21 broker.go DEBUG 准备将类型 1 的 msg 5560 发送到 XSQ000200000005

2018-07-11 17:25:38 broker.go DEBUG 准备将类型 1 的 msg 5560 发送到 XSQ000200000005

请忽略其他错误,只是因为业务。

这是我的消费者:

0 投票
2 回答
587 浏览

go - NSQ Re-Queue 半消息

Ids我有一个类型的数组,int64这是我正在尝试发布的 Nsq 消息。

在我的消费者中,我一个接一个地获取每个 ID,并根据我的 ID 从我的数据存储中获取信息。

因此,在获取时,如果我的 CreateObject 方法返回错误,则可能会出现这种情况,因此我通过重新排队 msg(给出错误)来处理这种情况,因此可以重试。

那么,这是正确的做法吗?他们在这种情况下有什么缺点吗?再发布一次更好吗?

0 投票
1 回答
131 浏览

java - TimerThread 是否导致死锁发生?

在此处输入图像描述

Timer-2 线程在 0x00000000e1a23398 上等待,同时它也在锁定 0x00000000e1a23398。这种情况会导致 Timer-2 线程死锁吗?任何人都可以为我解释一下吗?

0 投票
1 回答
334 浏览

node.js - 我应该在 nsqd 参数中设置哪个 --broadcast-address ?

现在我开始 nsqd nsqd --max-msg-timeout=1800000 --lookupd-tcp-address=127.0.0.1:4160

我将 nsqjd 用于带有 nsq 的 nodejs。直到几天前,一切都还好。现在,当在其中启动带有 nsqjs 的 nodejs 时,我收到错误: Error: getaddrinfo ENOTFOUND s-MacBook-Air.local s-MacBook-Air.local:4150 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26) Emitted 'error' event at:

看来,我需要指定 --broadcast-address (https://github.com/dudleycarr/nsqjs/issues/248#issuecomment-427571072)。

但是我应该提供哪个地址?我试过了'nsqd --max-msg-timeout=1800000 --lookupd-tcp-address=127.0.0.1:4160 --broadcast-address=localhost'

我的本地网络地址 ---broadcast-address=localhost':4160 没有任何效果。有什么帮助吗?

0 投票
0 回答
132 浏览

docker - 在 docker compose 文件中设置 Nsqlookupd 的 IP 地址和端口

有没有办法通过命令:\nsq在docker compose文件中手动设置NSQd节点的lookupd连接?

下面是nsq提供的docker-compose文件

0 投票
1 回答
164 浏览

docker - docker compose 中的 NSQD

nsqd 应该如何在实时微服务 docker 环境中使用?

我们应该在自己的 docker 容器中运行 nsqd,还是每个运行生产服务的容器也应该包含一个 nsqd 实例?

我还没有找到任何关于如何在同一个容器中运行(例如)Java/Spring 服务和 nsqd 实例的示例,所以我想知道其他人都在做什么。

可能的选项(其中 [...] 是一个 docker 容器):

1) 单个 NSQD:

2)每个生产者内的NSQD:

3) 每个生产者的 NSQD