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

go - 将多个应用程序合并为单个二进制文件

假设我有四个应用程序:

  1. http网关
  2. NATS
  3. 业务逻辑客户端
  4. 业务逻辑服务器

我的项目结构如下:

目前,我必须分别运行其中四个,然后它们才能相互交谈。Gateway 和 BLclient 使用request-reply模式,同时blclient用于grpcblserver. 我想知道是否有任何方法可以在 Go 中生成单个二进制文件,以便应用程序可以通过单个二进制文件运行。

有没有办法在 Go 中将多个应用程序二进制文件组合成一个?

0 投票
1 回答
545 浏览

java - Java 中的 Nats 请求/回复

我以前有 Kafka 知识,并且一直在玩 Nats.io,这似乎是消息传递的一个非常可靠的选择。

特别是,我对记录良好的请求/回复机制很感兴趣,但是我在使用 Jnats 驱动程序在 Java 中正确实现它时遇到了困难。

这是我的连接器:

这是请求方法(出于测试目的,等待时间非常长):

这是具有回复机制的响应处理程序:

我的两个独立服务通过 dockerized Nats.io 进行通信,并且我可以通过 Nats Go 客户端正确检查两个服务是否已就同一主题发送了消息。

不幸的是,调用函数时的“请求者”asyncRequest并不能完全处理回复,即使reply.get(...).

当我尝试reply在调试模式下评估对象时,它没有任何数据并显示TimeoutException.

msg.getData()程序崩溃。

你们对我有什么提示吗?谢谢!

0 投票
1 回答
619 浏览

apache-flink - 如何将 NATS 流服务器与 Apache flink 一起使用?

我想使用 NATs 流服务器来流式传输数据并使用 Flink 来处理数据。

如何使用 apache flink 通过 NATS 流服务器处理实时流数据?

0 投票
1 回答
382 浏览

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包,但结果是一样的。

哪里可能出错?

0 投票
0 回答
671 浏览

microservices - Nestjs:如何处理客户端存在的微服务MessagePattern

在我打电话之前我想检查 MessagePattern 的存在,因为当模式不存在时,应用程序挂起

我可以为每个模式拥有他的网关并使用@nestjs/terminus 从客户端检查他的存在,但我认为这不是像这样的好解决方案

nats chanels 或 smth 有没有更好的解决方案

0 投票
1 回答
175 浏览

wireshark - 是否有用于 NATS 协议的wireshark 解剖器(https://nats.io/)

到目前为止,Wireshark 仅显示捕获的 TCP 有效负载中的原始字节。我希望看到一些结构化的 NATS 消息:CONNECT、SUBSCRIBE、PUBLISH 等。有 Wireshark 插件吗?或者也许我可以使用另一个嗅探器?

0 投票
2 回答
559 浏览

microservices - 通过 nats 消息运行分子微服务

我是分子和微服务的初学者。我通过nestjs 框架创建了一个api 网关,现在我想通过nestjs 的nats 消息调用分子中的微服务。所以我的问题是:如何在 molculer 中调用服务以及在 nestjs 中调用分子动作的消息模式是什么?

通过 molculer 创建模板后,我有以下文件,我想调用“greeter.hello”操作。我能怎么做?

greeter.service.js :

分子.config.js:

谢谢

0 投票
1 回答
2057 浏览

kubernetes - nats流集群如何连接

我是 kubernetes 的新手,正在尝试设置 nats 流集群。我正在使用以下清单文件。但是我对如何在我的应用程序中访问 nats 流服务器感到困惑。我正在使用 azure kubernetes 服务。

我尝试使用nats://nats-streaming:4222,但它给出了以下错误。

stan: connect request timeout (possibly wrong cluster ID?)

我指的是https://docs.nats.io/nats-on-kubernetes/minimal-setup

0 投票
0 回答
501 浏览

c# - 使用 NATS 消息的大延迟

几年来,我们一直在生产中使用 NATS,只有一台服务器和大约 1,500 个使用 NATS.net 客户端的消费者,但最终开始详细分析性能,并且经常看到消费者在消费消息时出现很大延迟。

为了简单起见,我们有一个在消费者身上生成的乒乓式消息,通过 NATS 发送到中央服务器,该服务器对其进行处理并发送回回复。两条消息上都有时间戳,并标识它正在回复的消息。

我们看到的是消费者和中央服务器之间根本没有问题,它似乎一直在得到它们,但有时在消费者消费回复消息之前可能会有几分钟的延迟。

需要明确的是,对于流的每个方向,我们都有 2 个单独的 NATS 连接。

这是我们从订阅中消费的代码:

在我们缺少回复的期间,这Log.Debug("Subscriber Message Received");条线根本没有被击中,然后在一段时间后,所有未完成的消息都会一次击中......就好像有一个“阻塞”被清除了。

消费者正在运行的机器确实有很多事情要做,但 CPU 从未突破 50% 左右。

任何有关下一步检查内容的指示将不胜感激!

0 投票
0 回答
278 浏览

nats.io - 是否建议从本机前端客户端直接连接到 NATS 服务器?

根据文档,NATS 服务器设计是一种“服务器优先”的方法,涉及防止“惰性客户端”。惰性客户端只是在性能不佳的情况下启动。

因此,我内部化了一个假设,即从边缘连接的任何东西都不应该直接连接到 NATS 服务器,而是应该访问一些中间层服务点,该服务点通过内部发起的连接来管理和映射性能较差的外部连接到NATS 服务器。

例如,考虑远程客户设施上的客户服务节点,该节点访问通过 NATS 以某种形式提供服务的后端服务。

我所说的假设在非常严格的意义上是否正确,即使考虑到可能的客户端连接数量少并且这些设施的网络服务稳定,也不建议该远程节点直接连接到 NATS 服务器?

或者,是否可以直接从该远程节点连接如果,并且仅当我有一个已知的可靠基础架构(低延迟、高带宽、可靠等)。

最后,如果到那个远程节点的路径不是一个非常可靠的网络服务呢?具体来说,是不是更好 A)如我所描述的那样,在后端使用中间服务来管理端点连接请求并通过内部连接传递它们,或者 B)最好让它直接连接到服务器并让 NATS 根据需要启动它,然后使用丢弃方法重新连接以尽可能保持连接状态?

这里的一个很好的例子是移动端点,它可能由于各种原因而定期上下,并且完全没有设备或基础设施的故障。

目前,我将每个 NATS 解决方案设计为“仅后端连接”设计。如果这不必要地使我的设计过于复杂,我当然想停止强制该设计约束。:)