问题标签 [nats-streaming-server]

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

java - NATS 持久消息 Java 客户端

有没有人有使用 NATS Streaming Server 和 Java 客户端的经验?具体来说,我不知道如何使用 Java 客户端检索订阅者离线时发送的消息。

我可以看到使用Go 客户端可以发布消息,然后添加订阅以检索所有已发布的消息。这在 NATS Streaming Getting Started文档中,它可以像宣传的那样工作。

发布多条消息。对于每个出版物,您应该得到一个结果。

运行订阅者客户端。使用 --all 标志接收所有发布的消息。

我正在尝试使用NATS Java client来做到这一点。我不知道是因为我没有找到类似的方法调用,还是 Java 客户端中不存在该功能。

这是我尝试过的

这给出了输出

0 投票
1 回答
3266 浏览

nats.io - 获取 NATS 流服务器中的主题列表

我正在寻找一种在运行期间显示 NATS 流服务器上当前存在的所有主题的方法。已经彻底查看了文档,但到目前为止还没有找到提及这一点。

有没有办法找到可以在服务器上订阅的所有可用主题的列表?

0 投票
1 回答
1630 浏览

nats.io - Nats 使用哪种模式

我在微服务架构依赖中问了一个问题, 使用集群微服务架构时要使用哪种模式。

我收到了点对点应该可以工作的答案,但是在阅读时: https : //nats.io/documentation/concepts/nats-req-rep/ 感觉就像所有订阅者都收到了事件(并且正因为如此处理它)但只会有成为响应的订阅者。当放置将触发库存微服务订阅的更新库存事件的订单事件时,这将不起作用(如链接中的示例),即它不会在集群环境中工作,因为库存将被更新相同的次数微服务实例的数量。

如何使用 Nats 解决这种情况?

提前致谢!

0 投票
1 回答
1314 浏览

scala - NATS 流媒体服务器用户速率限制和一次交付

我正在玩一些 NATS 流媒体,但订阅者速率限制有问题。当我将飞行中的最大值设置为 1 并将超时设置为 1 秒并且我有一个基本上是 Thread.sleep(1000) 的消费者时,我会多次获得相同的事件。我认为通过限制飞行和使用手动确认这不应该发生。我怎样才能在非常慢的消费者身上得到非常好的一次交付?

0 投票
1 回答
927 浏览

nats.io - NATS IO 性能调优

我用 Java 编写了发布者和订阅者。在服务器级别也进行了集群。能够以 500 TPS(每秒事务)的速率发布和订阅 30 KB 的消息。

但我想将我们的性能提高到 2000 TPS 以上。请建议如何实现相同的目标。

我已经将 Java 与 Apache Camel 一起使用。

0 投票
1 回答
5371 浏览

publish-subscribe - NATS 请求回复 - 它是如何工作的?

我是新的 NATS。不确定 NATS 请求回复的工作原理。

据我了解,这种模式可用于双向通信,但问题是,它是否适用于相同的消息 ID/线程?如果不是,我们不能为同一目的使用两个不同的队列吗?它与 NATS 的 pub-sub 或 queue 模式有何不同?

有人可以提供更多的用例吗?

谢谢。

0 投票
0 回答
177 浏览

go - 在为 nats-streaming 设置处理程序时进行比赛数据检测

对于 nats-streaming 订阅,处理程序需要如下所示

我创建了以下函数,试图获取他们的处理程序,然后调用我自己的处理返回的消息。

使用 go test -race 我在循环/调用我的处理程序的区域周围得到一个数据警告竞争条件。我正在寻找一些关于如何改进它以消除比赛警告的建议。

== 比赛检测输出

链接到项目https://github.com/chadit/MessageQueueExamples/tree/master/nats-streaming/nats

0 投票
1 回答
1555 浏览

nats.io - NATS 发布/订阅确认

在过去的几天里,我一直在用 NATS 和 NATS 流服务器做一些 POC。我从 NATS 流服务器开始,为相同的 Java 客户端编写了一个 Java 客户端,并向/从 NATS 流服务器发布/订阅消息,与 NATS 服务器一起集群。NATS-streaming 非常简洁,guids当流媒体服务器收到来自发布者的消息时提供确认。我通过注册一个AckHandler并像这样使用它来实现这一点:

但是,当我开始查看 NATS 服务器(不是流式传输)时,我找不到任何这样的 AckHandler(或其他任何东西)可以向我提供确认guid消息已成功发布。

NATS 流服务器有很多我正在寻找的内置功能 - 例如,message acknowledgementsmax_age消息的 TTL)durable subscriptions等。但它缺乏当前最新版本的集群功能。另一方面,NATS 服务器提供了集群功能,但我找不到 NATS-streaming 提供的其他功能(除非我在文档中错过了它)。

我知道有一个未解决的问题是要在单个表中列出 NATS 与 NATS 流功能,以供参考,但目前还没有完成。

当消息发布到 NATS 服务器时,NATS 服务器是否提供确认?还是确认其中一个订阅者订阅了一条消息?

0 投票
1 回答
408 浏览

message-queue - NATS - 只有一个订阅者对微服务架构中的已发布事件采取行动

我是 NATS 的新手,并且已阅读以下所有示例: https ://nats.io/documentation/concepts/nats-messaging/

我在 Microservciearchitecture 中,在微服务 Y(MSY)中需要存储从其他微服务 X(MSX)发布的一些信息我有 2-10 个 MSY 实例,所以当在 MSX 和 MSX 实例中进行更改时,我想要发布事件只有 1 个 MSY 实例应保存信息,因此并非所有实例都保存相同的数据。我已阅读 Request-Repy: https ://nats.io/documentation/concepts/nats-req-rep/ 但似乎所有实例都收到消息(并将处理它),即使它是点对点的并且仅针对最快回复的一个实例处理回复

这是正确的还是我误解了例子?如果我只需要 1 个 MSY 实例来处理给定的消息(将数据存储在 db 中),我该怎么做才能做到这一点?

0 投票
1 回答
171 浏览

nats.io - 如果 NATS 消息负载包含 \n\r 怎么办?

我正在尝试为 NATS.io 编写客户端库。根据这里的协议,\n\r用于分隔命令、有效负载等。

INFO {"server_id":"1ec445b504f4edfb4cf7927c707dd717","version":"0.6.6","go":"go1.4.2","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"max_payload":1048576}

我的问题是如果有效载荷包含\r\n怎么办?我找不到任何关于如何逃跑的信息\r\n。是否应该INFO在收到有效的 JSON 之前阅读而不是寻找\r\n分隔符?

谢谢你的时间!