问题标签 [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 回答
122 浏览

node.js - nsqjs依赖错误:bignumber不是构造函数

我已将 nsqjs 添加为依赖项,但由于以下错误,我的构建失败

BigNumber.js 官方文档说应该导入为 const BigNumber = require('bignumber.js');

但在 node_modules/nsqjs/lib/backofftimer.js 中,它被导入为 const { BigNumber } = require('bignumber.js')

但是更改此导入并不能解决问题在此处输入图像描述

0 投票
2 回答
315 浏览

go - Kubernetes 中的 NSQ 集群

我正在尝试在 Kubernetes 中设置 NSQ 集群并遇到问题。基本上,我想扩展 NSQ 和 NSQ Lookup。我对它们都有一个有状态的集合(2 个节点)定义。为了不发布整个 YAML 文件,我将只为 NSQ 发布其中的一部分

NSQ 容器模板

nsqlookupd.default.svc.cluster.local是一个 K8s 无头服务,通过这样做,我希望 NSQ 实例打开与所有 NSQ Lookup 实例的连接,这实际上并没有发生。它只是打开与随机连接的连接。但是,如果我像这样明确列出所有 NSQ 查找主机,它就可以工作。

我还想在 --broadcast-address 中为 NSQ 和 NSQ 查找使用无头服务 DNS 名称,但这也不起作用。

我正在使用nsqiogo 库来发布和消费消息,看起来我也不能在那里使用无头服务,并且应该在初始化消费者或发布者时明确列出 NSQ/NSQ 查找 pod 名称。

我是否以错误的方式使用它?我的意思是我想要水平缩放 NSQ 和 NSQLookup 实例,而不是硬编码地址。

0 投票
1 回答
48 浏览

go - 如何使用其粘性连接进行 nsqd 负载平衡?

我在 kubernetes 环境中有一个 golang 微服务项目,它运行了几个nsqd-0, nsqd-1, ...pod,这些 pod 由其 statefulSet 控制并分组在nsqdservice 下。

问题是当我想制作一个制作人时,我导入github.com/nsqio/go-nsq并创建它p := nsq.NewProducer('nsqd:4150', nsq.NewConfig())

但是连接是粘性的(持久的)所以发生的事情是服务为我提供了随机 pod 的 ip 地址(说它nsqd-2),所有流量都流向它。其他的根本没用

现在我正在使用糟糕的解决方法,每 5 秒我p.Stop()当前的生产者并重新初始化,以便它连接到不同的 pod。但是如何正常负载均衡呢?有什么云原生简单的方法吗?

0 投票
0 回答
11 浏览

java - nsqd 节点重启时,生产者生成消息失败

而我的服务器发生 oom 导致应用程序重新启动,并且 nsqd 也重新启动,**生产者产生消息失败,尝试了 3 次

0 投票
0 回答
23 浏览

python - 如何在后台运行消息处理程序函数,使其不会阻塞 Python 中的主线程

我正在使用 NSQ 消费者从 NSQ 队列中获取消息,并通过 getData 函数添​​加到 BLEmanagment 类中的 JSON 变量中。但是当我尝试在下面运行代码时,处理程序类会永远运行并阻止主线程。blemanagement.getData() 从未调用过。

我的问题是 Handler(blemanagement.startNOTIFY()) 函数如何在后台踏板中永久运行,而 BLEmanagement 类的其他功能也可以从主踏板访问。

0 投票
0 回答
72 浏览

go - 如何在不消耗消息的情况下在 NSQ 中创建通道

我正在使用github.com/nsqio/go-nsqGo 包与NSQ一起工作,我遇到了以下问题。当生产者写一条消息时 - 它创建了一个主题,但没有创建一个频道,而且似乎 NSQ 服务器只是在没有频道时丢弃了一条消息。我不想丢失消息,也不想依赖消费者和生产者的启动顺序。所以一个可能的解决方案是在生产者端创建一个通道,这样当它写入时它不会丢弃消息。为了创建通道,我如何在不消费消息的情况下创建和销毁消费者?

序列

可以消费

删除AddConcurrentHandlers导致错误

协议规范我看不出它应该怎么做,除了发送 SUB 后跟 CLS,但因为这是两个命令和非“原子”类型的操作 - 理论上可能会发生在两者之间..

所以可能我试图做错了吗?例如 RABBITMQ 可以预先创建它,这里是这样的吗?

0 投票
1 回答
15 浏览

python - 我可以将 nsq_to_file 实用程序与 docker compose 一起使用吗?

我在运行一些自动化代码时使用nsq_to_file 实用程序,我想将该实用程序自动化为 docker-compose 服务。我找不到任何有关将此实用程序与 docker 一起使用的文档。我使用它如下:

./nsq_to_file --lookupd-http-address=<http_address> --topic=ta-gcp-test -output-dir=/path/to/local/dir -filename-format=local_file_name

有人对此有任何意见吗?