问题标签 [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.
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 中的错误,还是我忽略了什么?
nats.io - NATS 流服务器自动确认与发布/订阅
当我重新启动我的 NATS 订阅者守护程序时,我意外地注意到,所有消息都再次处理,尽管事实上它们已被正确处理。
发布.go:
订阅者.go
事实上,每次我重新启动订阅者守护进程时,NATS 流媒体服务器都会传递曾经收到的所有消息。
nats.io - C客户端在连接后自动断开连接
我在集群模式下运行 nats 服务器,配置如下:
我的应用程序尝试使用 nats-c 库连接到该集群,如下所示:
此调用的返回值为 NATS_TIMEOUT。从服务器的调试日志中,我可以看到客户端已连接但很快断开连接。
知道为什么会这样吗?
nats.io - NATS 中的动态用户管理
我考虑创建一个基于 NATS 的新解决方案,到目前为止只剩下两个悬而未决的问题。在我的场景中,我需要客户端向服务器以及可能的机制用户+密码、令牌和 JWT 进行身份验证,我想使用令牌或(最不喜欢的)用户 + 密码。
在文档中,我看到可以加密密码并存储多个用户的凭据。但我找不到以下信息:
- 令牌可以安全存储吗?
- 如何在不重新加载服务器的情况下添加新用户?
zeromq - ZMQ双向发布者-订阅者
我读到了这个:http ://api.zeromq.org/4-3:zmq -socket,据我了解,这两种类型的套接字都没有接近要求,我认为这很简单......基本上,我想要ZMQ 的工作方式与 NATS 的工作方式完全相同(我只是没有合适的 NATS 客户端,否则我会使用它)。
所以,描述问题:我有一个主节点和一堆从节点。Master 需要向节点发送消息并异步/越界接收响应(即在接收响应之前应该可以发送多个消息)。从节点都是唯一的。即循环、公平排队等是没有问题的:每个从站必须接收指定的消息(有时有一组从站都需要接收相同的消息)。
从属之间相互交谈可能也很有用(不一定直接,可能通过主控)。但是,如果这不可能开箱即用,我可能会在其他东西之上构建它,只要满足其他要求。
到目前为止,我一直在看SERVER
/ CLIENT
pair 和DEALER
/ ROUTER
,但由于它们如何将消息发送到随机目的地,两者都没有真正起作用。
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 应用程序会检测到它发送的消息并陷入无限循环,即发送消息并永远来回接收相同的消息。
nats.io - NATS Streaming Server 在使用集群时被关闭
我有在 3 个虚拟机上运行的 Nats 流服务器,它们按照官方 NATS 文档教程进行集群。每次文件发生更改时,一个实例都会关闭,然后所有其他实例都会在片刻后关闭。
尝试更改一些配置文件但没有成功
例如:有人通过在 VM-1 上连接发布,VM-1 获取消息... 片刻之后(可能是在存储消息时)我在一个实例上收到此错误,然后在其他实例上出现同样的错误。
python-3.x - Nats 订阅者持续监听发布者
我正在尝试让 NATS 订阅者持续收听已发布的消息。
My Publisher 是一个 API 端点,可以在浏览器中访问。我的订阅者是一个 python 应用程序,它应该永远运行,监听发布的消息。
我的问题是订户从不打印任何东西。如果我将 run_forever() 更改为 loop.close(),它可以工作但会立即关闭。我知道出版商正在工作,因为我可以看到来自 NATS 服务器的打印输出。
我正在 docker-compose 中运行所有内容。
我的订阅者:
我的发布者:
我的码头工人撰写:
go - 测试时“无法在 Go Routine 中启动 NATS 服务器”
我正在尝试分离测试以使用不同的 NATS 服务器。(我还不确定它是 NATS,但我的测试会相互影响。)
在运行单个测试或测试单个包时这样做可以正常工作。在我所有的包上运行go test ./...
(就像在 CI 中所做的那样)我得到这个错误(路径匿名):
似乎 Go 启动了 goroutine 以在其中运行测试。使用TestMain
和init
在测试中都不能解决问题。
是否可以在每次测试时启动服务器而不会遇到goroutine
错误?还是有一些轻量级但功能正常的内存替换?
这里有一些代码:
我的目标是每次测试都有一个服务器:
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