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

python - 如果从 Python 运行进程,getaddrinfow 将失败

我尝试从我的 python 脚本运行 3rd 方进程 (nsqd.exe),但是当我这样做时,nsqd 无法绑定套接字。我不知道为什么。

我正在使用的脚本:

和输出:

如果我自己直接运行它,一切正常:

也许有人知道出了什么问题?

Win10,python352。以管理员身份运行没有帮助。

谢谢。

0 投票
1 回答
315 浏览

kubernetes - 尝试创建 NSQ PetSet,容器启动后 Pod 不断终止

完整的 yaml 文件在这里(没有嵌入问题,因为它相当长并且因为describe下面涵盖了许多重要位):

https://gist.github.com/sporkmonger/46a820f9a1ed8a73d89a319dffb24608

使用我在这里创建的公共容器映像:sporkmonger/nsq-k8s:0.3.8

Container 与官方 NSQ 镜像相同,但使用 Debian Jessie 而不是 Alpine/musl 来解决对于 Alpine-on-Kubernetes 来说往往是个问题的 DNS 问题。

当我描述其中一个 pod 时,会发生以下情况:

一个相当有代表性的大约 30 秒集群活动的手表:

典型的容器日志:

对于 Kubernetes 为何不断杀死这些 pod,我完全摸不着头脑。容器本身似乎并没有行为不端,而 kubernetes 本身似乎正在终止这里的事情......

0 投票
2 回答
495 浏览

docker - NSQ Docker 群

我试图在 Docker Swarm 中使用 NSQ 没有成功

mhlg/rpi-nsq 是为 Raspberry Pi ARM7 板构建的 Docker 映像,如果作为普通 Docker 容器运行,我可以确认它工作正常

在 Docker 中运行 NSQ(确定)

在 Docker Swarm 模式下运行 NSQ (FAIL) 这是我在 swarm manager 中所做的

如果我附加到 nsqd 服务,我可以看到它无法连接到 nsqlookupd 服务。

看起来覆盖网络会产生一些问题(多播?),但我不知道如何解决它,尤其是在 ARM 设备上。

我试图通过 ssh 进入运行 nsqd 服务的 Docker 主机并从 nsqd 容器内执行一些 dns 命令

0 投票
1 回答
136 浏览

messaging - 如何使用消息传递架构将消息发送回发送者?

我正在使用消息传递架构解决微服务之间的通信。

假设我有一个传统应用程序,并且有User模块Post Video

您可以使用它创建帖子、视频,但在此之前,我需要将用户名转换为用户 ID。

在此处输入图像描述

一旦我将模块拆分为微服务,我就无法将它们链接在一起,而是直接访问微服务。

在此处输入图像描述

如果我想将用户名转换为 ID,

我可以通过Messaging调用User服务中的Post服务,到目前为止一切顺利。

在此处输入图像描述

但问题是:

  • 如何接收转换后的用户 ID?向Post服务发送另一条消息并继续下一步?

  • 如果我想从Video服务中执行此操作怎么办?我需要在User服务中为它创建另一个功能吗?

如果我得到越来越多的服务,那将是很多功能,对吗?

我认为这不是消息传递架构的工作方式,但我不知道如何在没有消息传递的情况下与其他服务进行通信。

(或者我应该在 API 网关中将它们链接在一起,这样我就不需要消息传递架构了吗?)

在此处输入图像描述

0 投票
1 回答
2478 浏览

mysql - 如何将数据库与微服务(和新的)同步?

我正在开发一个具有微服务架构的网站,每个服务都拥有一个数据库。数据库存储微服务需要的数据。


Post,Video服务需要用户信息,所以两个服务都订阅了NEW_USER_EVENT.

NEW_USER_EVENT在有新用户注册时触发。

在此处输入图像描述

一旦服务接收到NEW_USER_EVENT,他们将传入的用户信息放到他们自己的数据库中。所以他们可以在不询问User服务的情况下做事。

在此处输入图像描述

到目前为止,一切都很好。但问题来了:

  • 如果我要创建一个新服务怎么办?如何获取注册用户信息并将其放入新服务中?

也许我可以从现有服务中获取信息。但事件是由消息队列 ( NSQ) 推送的。

如果我要从其中一个微服务中复制数据,我如何确定哪个服务具有最新的用户信息?(因为有些服务没有收到最新的事件

在此处输入图像描述


阅读更多:

微服务最难的部分:你的数据

微服务简介,第 4 部分:依赖关系和数据共享

0 投票
1 回答
807 浏览

go - nsqjs 客户端,不立即从 go-nsq 服务器端接收消息

尝试学习 nsq,并遵循golang 示例nsqjs中的示例。我正在服务器端发送消息,使用 for 循环和执行例程

但问题是,在客户端。

消息不会立即发送给客户端。我将等待几秒钟,直到消息到达 nodejs 客户端。有什么我需要做的设置吗?谢谢你!

0 投票
1 回答
794 浏览

networking - 从 nslookupd 发现 nsqd 服务器地址

我正在使用以下 docker-compose.yaml 文件在 Docker 容器中运行 nsq 集群:

一切运行良好。但是,如果我调用 nsqdlookup 服务器上的 /nodes 端点,我会得到:

广播地址看起来像容器的名称/主机名。我试图在端口 4151 上 ping 以防万一,但它失败了。

远程地址相同:

如果我使用 localhost 或 127.0.0.1,一切正常:

但是,那是骗人的。nsqlookupd 服务器的全部意义在于它们跟踪 nsqd 服务器,因此客户端可以动态获取响应服务器的列表。

当 nsqd 节点在 Docker 容器中运行时,是否可以从 nslookupd 服务器获取 nsqd 节点的可访问 URL/IP 地址?

是否有一些魔法咒语使它起作用?

有人尝试过使用 Swarm 或 Kubernetes 吗?

0 投票
1 回答
37 浏览

go - 为什么 nsqlookupd 包使用上下文?

看了nsq源码的nsqlookupd部分,发现作者使用了一个Context truct来包装一个NSQLookupd struct,而没有其他的func用于Context。不知道为什么要这样用,能从中得到什么好处这边走?下面的源代码在这里。谢谢!

上下文.go

nsqlookupd.go

0 投票
1 回答
819 浏览

nsq - Temporary NSQ Channels

I have nodes that need to connect to NSQ, they need to get all the messages for that topic. To do this, they each create a channel. I am wondering if there is a way for nsqd to clean them up after the consumers have been disconnected?

0 投票
0 回答
66 浏览

publish-subscribe - 使用公共 IP 配置 nsq.io

我在我们的系统中使用http://nsq.io/发布/订阅。

目前,我们仅将 Nsq.io 用于本地服务器,我公开了一条消息,使用 localhost 作为:

我计划在公共服务器中使用 Nsq.io 并希望用作:

我找不到这样的配置文件或指南,有人有经验给我建议吗?

预先感谢。