问题标签 [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 投票
0 回答
634 浏览

javascript - 如何使用消息队列编写 API 集成测试?

考虑到我有一个 API 端点http://localhost/add-page-view。当我们发送一个带有数据的发布请求时{url: "google.com"},它将被发送到一个消息队列,然后由队列订阅者插入到数据库中

我需要编写一个测试用例,向该端点发送一个 post 请求,然后检查是否"google.com"已插入 DB。由于它是通过消息队列插入的,我们不确定它是否被插入。

一种方法是在2秒后将数据发布到端点检查是否已插入

但是,这听起来不是一个好的解决方案

注意:这是一个集成测试,而不是单元测试

0 投票
2 回答
679 浏览

nsq - NSQ 无法收到消息

我看这个:nsq 不能通过连接到 nsqlookupd 来消费消息

但他不适用于我,各种方法都试过了。可能是环境。

系统:VMware CentOS + Docker-compose NSQ 版本:全部最新

码头工人-compose.yml:

我尝试在 NSQD 命令中添加 -broadcast-address=127.0.0.1 但它会导致管理员页面错误。

码头工人撰写配置

在此处输入图像描述

我希望你明白我的意思,毕竟我的英语很差你有什么想法吗?

此代码成功他可以向nsqd添加消息,但我无法连接到nsqd

看看这个:

和这个

我认为问题出现在查找连接 NSQ 但我不知道如何处理他。

0 投票
1 回答
291 浏览

docker - 无法从 docker-compose 文件中定义的另一个服务连接到 nsqd

我有一个连接到 nsqd 的服务来生成和使用消息。我有连接到它的集成测试(广播地址 127.0.0.1),这可以在 cli 或 ide 本地执行它。

然后我用 docker-compose 创建了这个服务,但是无法连接到 nsqd。

以下是我的 docker-compose 文件

现在我不在乎本地的测试,只是为了让所有容器都能正常工作。

我尝试更改广播,删除广播...正如他们在文档中所说的那样https://nsq.io/deployment/docker.html#using-docker-compose这是我尝试的最后一件事(基本上更改是命令),没有运气:

0 投票
0 回答
54 浏览

python - 如何从网络服务器连接/收听 nsqd

所以我有一个简单的烧瓶服务器,想听 nsqd,(我的 nsqd 和 nsqlookupd docker 运行良好。)我使用 python 中的 gnsq 作为工具来实现这一点

服务器.py:

当我运行服务器时,我得到的只是

[0.0.0.0:4161] connection failed (NSQSocketError(57, 'Socket is not connected'))

我也尝试过更改端口,但仍然存在。

0 投票
1 回答
137 浏览

docker - 如何从 docker-compose 获取 docker 生成的 ip 端口

docker 网络似乎不起作用,docker 在指定容器名称时应该知道地址和端口,或者我错过了什么?

是否有可能获得生成的 ip 端口,如:

码头工人-compose.yml

尝试更改--auth-http-address='0.0.0.0:80'本地地址我在本地运行它。

码头工人-compose.yml

有错误信息

错误:针对身份验证器地址的身份验证失败 身份验证器:地址中缺少端口

0 投票
1 回答
109 浏览

nsq - 当生产者通过不同的 nsqd 向同一主题发送消息时,nsqadmin 中显示的通道深度快速增加

我玩了一下nsqd,遇到了标题中提到的问题。但是当我通过单个 nsqd 发送消息时,没有这样的问题。这是否意味着消息应该始终通过相同的 nsqd 发送?

这是我的项目。https://github.com/hoozecn/nsqd-cluster

0 投票
1 回答
284 浏览

python - 如何在python中获取函数的返回值

我将如何获得 so 的返回值response_handler,我将能够传递给父函数connect(),所以当我调用它时,它将返回message.body来自子函数的值。

我会想到以下内容:

但它不起作用。注意:consumer.start()正在阻塞

0 投票
1 回答
139 浏览

go - 干净关闭后尝试重新连接到 NSQ

我在我的 Go 微服务中创建了一个 NSQ 生产者,我正在尝试创建一个方法,让它在 NSQ 重新启​​动后尝试重新连接。

我查看了 nsq 配置文档,希望看看我是否可以在重新启动/退出时提供故障转移方法,但我运气不佳。我将发布我如何创建我的 NSQ 生产者:

非常感谢所有帮助!

0 投票
1 回答
64 浏览

kubernetes - 将动态命令注入部署

当你有一个 StatefulSet 或一个 Deployment 时,你通常有办法提供将在创建 pod 的容器时输入的命令。

当部署使用 HPA 自动缩放时,是否有可能将更多参数注入到命令数组中,或者如果它缩小,则删除某些参数?

例如,如果您想允许 nsqlookupd 横向扩展(另一个部署),那么您必须将其新的 pod IP 注册到 nsqAdmin pod 的命令列表中。

这种情况是假设的,因为您需要达到大量的队列,我想需要扩展到超过 3 个 nsqlookupd-s(NSQ 的队列发现 svc),因此对于中等负载,固定数量的 looupd-s 就可以了. 即便如此,我想知道在极端情况下如何在 Kubernetes 中处理这种类型的自动扩展。

尤其是事件驱动的系统,肯定有用例,这是我能想到的最接近的。

0 投票
1 回答
188 浏览

python - 在 nsq.run() 之后,我的 python 脚本没有执行“pynsq”包中的代码块

代码截图

我正在尝试将“pynsq”包(消息代理服务)用于我的 django 项目。但是当我使用 nsq.Reader() 类通过使用 nsq.run() 命令运行异步消费者请求时,它需要我的主线程和我的代码在此命令未执行之后。

例如:- 如图 nsq.run() 之后的图片所示,我正在尝试打印(“hello”),但是当我运行这个 .py 脚本时,打印函数没有调用。我已尽力为此找到解决方案.

可以在我的 django 项目中使用这个包吗?因为当我在 nsq.run() 之后运行这个脚本时,我的块代码没有执行。

请任何人都可以建议我在我的 django 项目中使用这个包的解决方案。