问题标签 [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.
go - 将多个应用程序合并为单个二进制文件
假设我有四个应用程序:
- http网关
- NATS
- 业务逻辑客户端
- 业务逻辑服务器
我的项目结构如下:
目前,我必须分别运行其中四个,然后它们才能相互交谈。Gateway 和 BLclient 使用request-reply
模式,同时blclient
用于grpc
与blserver
. 我想知道是否有任何方法可以在 Go 中生成单个二进制文件,以便应用程序可以通过单个二进制文件运行。
有没有办法在 Go 中将多个应用程序二进制文件组合成一个?
java - Java 中的 Nats 请求/回复
我以前有 Kafka 知识,并且一直在玩 Nats.io,这似乎是消息传递的一个非常可靠的选择。
特别是,我对记录良好的请求/回复机制很感兴趣,但是我在使用 Jnats 驱动程序在 Java 中正确实现它时遇到了困难。
这是我的连接器:
这是请求方法(出于测试目的,等待时间非常长):
这是具有回复机制的响应处理程序:
我的两个独立服务通过 dockerized Nats.io 进行通信,并且我可以通过 Nats Go 客户端正确检查两个服务是否已就同一主题发送了消息。
不幸的是,调用函数时的“请求者”asyncRequest
并不能完全处理回复,即使reply.get(...)
.
当我尝试reply
在调试模式下评估对象时,它没有任何数据并显示TimeoutException
.
在msg.getData()
程序崩溃。
你们对我有什么提示吗?谢谢!
apache-flink - 如何将 NATS 流服务器与 Apache flink 一起使用?
我想使用 NATs 流服务器来流式传输数据并使用 Flink 来处理数据。
如何使用 apache flink 通过 NATS 流服务器处理实时流数据?
java - 使用 Siddhi 与 NATS 服务器的连接问题
我想使用 Siddhi 流处理器从 NATS 服务器读取消息。我已经安装了以下软件:
- NATS 服务器 v2.1.6(在独立服务器上)
- Siddhi siddhi-runner-5.1.2(作为同一 LAN 上另一台服务器上的独立二进制文件)
- NATS 2.0.10 的 Siddhi 扩展,具有以下依赖项:protobuf-java-3.9.1.jar、java-nats-streaming-2.2.2.jar、jnats-2.6.5.jar(反正我不使用流选项)
我使用以下 siddhi 应用程序:
当 Siddhi 启动时,它似乎可以NATS server
毫无问题地连接,但在最初的握手之后,Siddhi 会抛出以下内容exception
:
并不断重启连接过程,所以在日志中NATS server
我们可以看到如下信息:
这NATS server
与我在 pub-sub 应用程序中使用的相同Nodejs
,它工作正常。我也尝试使用最后一个 Siddhidocker
包,但结果是一样的。
哪里可能出错?
microservices - Nestjs:如何处理客户端存在的微服务MessagePattern
在我打电话之前我想检查 MessagePattern 的存在,因为当模式不存在时,应用程序挂起
我可以为每个模式拥有他的网关并使用@nestjs/terminus 从客户端检查他的存在,但我认为这不是像这样的好解决方案
nats chanels 或 smth 有没有更好的解决方案
wireshark - 是否有用于 NATS 协议的wireshark 解剖器(https://nats.io/)
到目前为止,Wireshark 仅显示捕获的 TCP 有效负载中的原始字节。我希望看到一些结构化的 NATS 消息:CONNECT、SUBSCRIBE、PUBLISH 等。有 Wireshark 插件吗?或者也许我可以使用另一个嗅探器?
microservices - 通过 nats 消息运行分子微服务
我是分子和微服务的初学者。我通过nestjs 框架创建了一个api 网关,现在我想通过nestjs 的nats 消息调用分子中的微服务。所以我的问题是:如何在 molculer 中调用服务以及在 nestjs 中调用分子动作的消息模式是什么?
通过 molculer 创建模板后,我有以下文件,我想调用“greeter.hello”操作。我能怎么做?
greeter.service.js :
分子.config.js:
谢谢
kubernetes - nats流集群如何连接
我是 kubernetes 的新手,正在尝试设置 nats 流集群。我正在使用以下清单文件。但是我对如何在我的应用程序中访问 nats 流服务器感到困惑。我正在使用 azure kubernetes 服务。
我尝试使用nats://nats-streaming:4222
,但它给出了以下错误。
stan: connect request timeout (possibly wrong cluster ID?)
c# - 使用 NATS 消息的大延迟
几年来,我们一直在生产中使用 NATS,只有一台服务器和大约 1,500 个使用 NATS.net 客户端的消费者,但最终开始详细分析性能,并且经常看到消费者在消费消息时出现很大延迟。
为了简单起见,我们有一个在消费者身上生成的乒乓式消息,通过 NATS 发送到中央服务器,该服务器对其进行处理并发送回回复。两条消息上都有时间戳,并标识它正在回复的消息。
我们看到的是消费者和中央服务器之间根本没有问题,它似乎一直在得到它们,但有时在消费者消费回复消息之前可能会有几分钟的延迟。
需要明确的是,对于流的每个方向,我们都有 2 个单独的 NATS 连接。
这是我们从订阅中消费的代码:
在我们缺少回复的期间,这Log.Debug("Subscriber Message Received");
条线根本没有被击中,然后在一段时间后,所有未完成的消息都会一次击中......就好像有一个“阻塞”被清除了。
消费者正在运行的机器确实有很多事情要做,但 CPU 从未突破 50% 左右。
任何有关下一步检查内容的指示将不胜感激!
nats.io - 是否建议从本机前端客户端直接连接到 NATS 服务器?
根据文档,NATS 服务器设计是一种“服务器优先”的方法,涉及防止“惰性客户端”。惰性客户端只是在性能不佳的情况下启动。
因此,我内部化了一个假设,即从边缘连接的任何东西都不应该直接连接到 NATS 服务器,而是应该访问一些中间层服务点,该服务点通过内部发起的连接来管理和映射性能较差的外部连接到NATS 服务器。
例如,考虑远程客户设施上的客户服务节点,该节点访问通过 NATS 以某种形式提供服务的后端服务。
我所说的假设在非常严格的意义上是否正确,即使考虑到可能的客户端连接数量少并且这些设施的网络服务稳定,也不建议该远程节点直接连接到 NATS 服务器?
或者,是否可以直接从该远程节点连接如果,并且仅当我有一个已知的可靠基础架构(低延迟、高带宽、可靠等)。
最后,如果到那个远程节点的路径不是一个非常可靠的网络服务呢?具体来说,是不是更好 A)如我所描述的那样,在后端使用中间服务来管理端点连接请求并通过内部连接传递它们,或者 B)最好让它直接连接到服务器并让 NATS 根据需要启动它,然后使用丢弃方法重新连接以尽可能保持连接状态?
这里的一个很好的例子是移动端点,它可能由于各种原因而定期上下,并且完全没有设备或基础设施的故障。
目前,我将每个 NATS 解决方案设计为“仅后端连接”设计。如果这不必要地使我的设计过于复杂,我当然想停止强制该设计约束。:)