问题标签 [nats.io]

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 回答
34 浏览

java - jnats 2.4.2 在关机时挂起

当使用 jnats 2.4.1 运行 Java NATS 客户端时,一切都很好。更新到 jnats 2.4.2 时,关机大约需要。打印“完成”后一分钟:

我的环境:我在带有 Java 11.0.2 的 Windows 10 机器上运行带有 SBT 构建的 IntelliJ IDEA 的东西。

这是 2.4.2 中的错误,还是我忽略了什么?

0 投票
1 回答
328 浏览

nats.io - NATS 流服务器自动确认与发布/订阅

当我重新启动我的 NATS 订阅者守护程序时,我意外地注意到,所有消息都再次处理,尽管事实上它们已被正确处理。

发布.go:

订阅者.go

事实上,每次我重新启动订阅者守护进程时,NATS 流媒体服务器都会传递曾经收到的所有消息。

0 投票
1 回答
293 浏览

nats.io - C客户端在连接后自动断开连接

我在集群模式下运行 nats 服务器,配置如下:

我的应用程序尝试使用 nats-c 库连接到该集群,如下所示:

此调用的返回值为 NATS_TIMEOUT。从服务器的调试日志中,我可以看到客户端已连接但很快断开连接。

知道为什么会这样吗?

0 投票
1 回答
372 浏览

nats.io - NATS 中的动态用户管理

我考虑创建一个基于 NATS 的新解决方案,到目前为止只剩下两个悬而未决的问题。在我的场景中,我需要客户端向服务器以及可能的机制用户+密码、令牌和 JWT 进行身份验证,我想使用令牌或(最不喜欢的)用户 + 密码。

在文档中,我看到可以加密密码并存储多个用户的凭据。但我找不到以下信息:

  • 令牌可以安全存储吗?
  • 如何在不重新加载服务器的情况下添加新用户?
0 投票
1 回答
542 浏览

zeromq - ZMQ双向发布者-订阅者

我读到了这个:http ://api.zeromq.org/4-3:zmq -socket,据我了解,这两种类型的套接字都没有接近要求,我认为这很简单......基本上,我想要ZMQ 的工作方式与 NATS 的工作方式完全相同(我只是没有合适的 NATS 客户端,否则我会使用它)。

所以,描述问题:我有一个主节点和一堆从节点。Master 需要向节点发送消息并异步/越界接收响应(即在接收响应之前应该可以发送多个消息)。从节点都是唯一的。即循环、公平排队等是没有问题的:每个从站必须接收指定的消息(有时有一组从站都需要接收相同的消息)。

从属之间相互交谈可能也很有用(不一定直接,可能通过主控)。但是,如果这不可能开箱即用,我可能会在其他东西之上构建它,只要满足其他要求。


到目前为止,我一直在看SERVER/ CLIENTpair 和DEALER/ ROUTER,但由于它们如何将消息发送到随机目的地,两者都没有真正起作用。

0 投票
2 回答
4855 浏览

javascript - NestJS NATS 请求-响应

我正在尝试使用 NestJS 和 NATS 微服务。有很好的文档来设置基本的请求-响应。

我所做的是以下内容:

运行本地 NATS 服务器。

设置我main.ts连接到服务器:

创建了一个 ClientProxyFactory 来发回消息:

设置控制器app.controller.ts以响应特定模式:

设置测试文件以尝试发送请求-响应消息:

当我运行我的 Nest 应用程序时,我可以在 NATS 服务器日志中看到正确创建的订阅。

当我运行test.ts文件时,它会超时NatsError: Request timed out.。但是,我可以看到我的控制台日志(尽管数据是undefined即使我在发布的消息中指定它。

return和方法都client.send无法从应用程序接收消息。

任何帮助表示赞赏!

编辑:仍在研究并坚持这个问题。在微服务文档的“发送消息”部分,它说“模式必须等于在 @MessagePattern() 装饰器中定义的模式,而有效负载是我们想要传输到另一个微服务的消息。”。如果我这样做,Nest 应用程序会检测到它发送的消息并陷入无限循环,即发送消息并永远来回接收相同的消息。

0 投票
1 回答
472 浏览

nats.io - NATS Streaming Server 在使用集群时被关闭

我有在 3 个虚拟机上运行的 Nats 流服务器,它们按照官方 NATS 文档教程进行集群。每次文件发生更改时,一个实例都会关闭,然后所有其他实例都会在片刻后关闭。

尝试更改一些配置文件但没有成功

例如:有人通过在 VM-1 上连接发布,VM-1 获取消息... 片刻之后(可能是在存储消息时)我在一个实例上收到此错误,然后在其他实例上出现同样的错误。

0 投票
1 回答
1691 浏览

python-3.x - Nats 订阅者持续监听发布者

我正在尝试让 NATS 订阅者持续收听已发布的消息。

My Publisher 是一个 API 端点,可以在浏览器中访问。我的订阅者是一个 python 应用程序,它应该永远运行,监听发布的消息。

我的问题是订户从不打印任何东西。如果我将 run_forever() 更改为 loop.close(),它可以工作但会立即关闭。我知道出版商正在工作,因为我可以看到来自 NATS 服务器的打印输出。

我正在 docker-compose 中运行所有内容。

我的订阅者:

我的发布者:

我的码头工人撰写:

0 投票
3 回答
631 浏览

go - 测试时“无法在 Go Routine 中启动 NATS 服务器”

我正在尝试分离测试以使用不同的 NATS 服务器。(我还不确定它是 NATS,但我的测试会相互影响。)

在运行单个测试或测试单个包时这样做可以正常工作。在我所有的包上运行go test ./...(就像在 CI 中所做的那样)我得到这个错误(路径匿名):

似乎 Go 启动了 goroutine 以在其中运行测试。使用TestMaininit在测试中都不能解决问题。

是否可以在每次测试时启动服务器而不会遇到goroutine错误?还是有一些轻量级但功能正常的内存替换?


这里有一些代码:

我的目标是每次测试都有一个服务器:

0 投票
0 回答
63 浏览

amazon-ecs - nats.io 在发现路由时如何解析域?

如果我为 nats.io 指定路由,例如

nats-route://ruser:T0pS3cr3t@nats.cluster1:622

nats.cluster1- 是由 aws/ecs/service_discovery 管理的 aws Route53 中的域。它可能有随机数量的 A 记录。

是否会nats.io解析nats.cluster1获取 A 记录列表并等待TTL再次解析?

还是会使用类似的东西解决并永远gethostbyname使用该解决方案?ip