问题标签 [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.
javascript - 如何使用消息队列编写 API 集成测试?
考虑到我有一个 API 端点http://localhost/add-page-view。当我们发送一个带有数据的发布请求时{url: "google.com"}
,它将被发送到一个消息队列,然后由队列订阅者插入到数据库中
我需要编写一个测试用例,向该端点发送一个 post 请求,然后检查是否"google.com"
已插入 DB。由于它是通过消息队列插入的,我们不确定它是否被插入。
一种方法是在2秒后将数据发布到端点检查是否已插入
但是,这听起来不是一个好的解决方案
注意:这是一个集成测试,而不是单元测试
nsq - NSQ 无法收到消息
我看这个:nsq 不能通过连接到 nsqlookupd 来消费消息
但他不适用于我,各种方法都试过了。可能是环境。
系统:VMware CentOS + Docker-compose NSQ 版本:全部最新
码头工人-compose.yml:
我尝试在 NSQD 命令中添加 -broadcast-address=127.0.0.1 但它会导致管理员页面错误。
码头工人撰写配置
我希望你明白我的意思,毕竟我的英语很差你有什么想法吗?
此代码成功他可以向nsqd添加消息,但我无法连接到nsqd
看看这个:
和这个
我认为问题出现在查找连接 NSQ 但我不知道如何处理他。
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这是我尝试的最后一件事(基本上更改是命令),没有运气:
python - 如何从网络服务器连接/收听 nsqd
所以我有一个简单的烧瓶服务器,想听 nsqd,(我的 nsqd 和 nsqlookupd docker 运行良好。)我使用 python 中的 gnsq 作为工具来实现这一点
服务器.py:
当我运行服务器时,我得到的只是
[0.0.0.0:4161] connection failed (NSQSocketError(57, 'Socket is not connected'))
我也尝试过更改端口,但仍然存在。
docker - 如何从 docker-compose 获取 docker 生成的 ip 端口
docker 网络似乎不起作用,docker 在指定容器名称时应该知道地址和端口,或者我错过了什么?
是否有可能获得生成的 ip 端口,如:
码头工人-compose.yml
尝试更改--auth-http-address='0.0.0.0:80'
本地地址我在本地运行它。
码头工人-compose.yml
有错误信息
错误:针对身份验证器地址的身份验证失败 身份验证器:地址中缺少端口
nsq - 当生产者通过不同的 nsqd 向同一主题发送消息时,nsqadmin 中显示的通道深度快速增加
我玩了一下nsqd,遇到了标题中提到的问题。但是当我通过单个 nsqd 发送消息时,没有这样的问题。这是否意味着消息应该始终通过相同的 nsqd 发送?
python - 如何在python中获取函数的返回值
我将如何获得 so 的返回值response_handler
,我将能够传递给父函数connect()
,所以当我调用它时,它将返回message.body
来自子函数的值。
我会想到以下内容:
但它不起作用。注意:consumer.start()
正在阻塞
go - 干净关闭后尝试重新连接到 NSQ
我在我的 Go 微服务中创建了一个 NSQ 生产者,我正在尝试创建一个方法,让它在 NSQ 重新启动后尝试重新连接。
我查看了 nsq 配置文档,希望看看我是否可以在重新启动/退出时提供故障转移方法,但我运气不佳。我将发布我如何创建我的 NSQ 生产者:
非常感谢所有帮助!
kubernetes - 将动态命令注入部署
当你有一个 StatefulSet 或一个 Deployment 时,你通常有办法提供将在创建 pod 的容器时输入的命令。
当部署使用 HPA 自动缩放时,是否有可能将更多参数注入到命令数组中,或者如果它缩小,则删除某些参数?
例如,如果您想允许 nsqlookupd 横向扩展(另一个部署),那么您必须将其新的 pod IP 注册到 nsqAdmin pod 的命令列表中。
这种情况是假设的,因为您需要达到大量的队列,我想需要扩展到超过 3 个 nsqlookupd-s(NSQ 的队列发现 svc),因此对于中等负载,固定数量的 looupd-s 就可以了. 即便如此,我想知道在极端情况下如何在 Kubernetes 中处理这种类型的自动扩展。
尤其是事件驱动的系统,肯定有用例,这是我能想到的最接近的。
python - 在 nsq.run() 之后,我的 python 脚本没有执行“pynsq”包中的代码块
我正在尝试将“pynsq”包(消息代理服务)用于我的 django 项目。但是当我使用 nsq.Reader() 类通过使用 nsq.run() 命令运行异步消费者请求时,它需要我的主线程和我的代码在此命令未执行之后。
例如:- 如图 nsq.run() 之后的图片所示,我正在尝试打印(“hello”),但是当我运行这个 .py 脚本时,打印函数没有调用。我已尽力为此找到解决方案.
可以在我的 django 项目中使用这个包吗?因为当我在 nsq.run() 之后运行这个脚本时,我的块代码没有执行。
请任何人都可以建议我在我的 django 项目中使用这个包的解决方案。