问题标签 [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.
java - NATS 持久消息 Java 客户端
有没有人有使用 NATS Streaming Server 和 Java 客户端的经验?具体来说,我不知道如何使用 Java 客户端检索订阅者离线时发送的消息。
我可以看到使用Go 客户端可以发布消息,然后添加订阅以检索所有已发布的消息。这在 NATS Streaming Getting Started文档中,它可以像宣传的那样工作。
发布多条消息。对于每个出版物,您应该得到一个结果。
运行订阅者客户端。使用 --all 标志接收所有发布的消息。
我正在尝试使用NATS Java client来做到这一点。我不知道是因为我没有找到类似的方法调用,还是 Java 客户端中不存在该功能。
这是我尝试过的
这给出了输出
nats.io - 获取 NATS 流服务器中的主题列表
我正在寻找一种在运行期间显示 NATS 流服务器上当前存在的所有主题的方法。已经彻底查看了文档,但到目前为止还没有找到提及这一点。
有没有办法找到可以在服务器上订阅的所有可用主题的列表?
scala - NATS 流媒体服务器用户速率限制和一次交付
我正在玩一些 NATS 流媒体,但订阅者速率限制有问题。当我将飞行中的最大值设置为 1 并将超时设置为 1 秒并且我有一个基本上是 Thread.sleep(1000) 的消费者时,我会多次获得相同的事件。我认为通过限制飞行和使用手动确认这不应该发生。我怎样才能在非常慢的消费者身上得到非常好的一次交付?
nats.io - NATS IO 性能调优
我用 Java 编写了发布者和订阅者。在服务器级别也进行了集群。能够以 500 TPS(每秒事务)的速率发布和订阅 30 KB 的消息。
但我想将我们的性能提高到 2000 TPS 以上。请建议如何实现相同的目标。
我已经将 Java 与 Apache Camel 一起使用。
publish-subscribe - NATS 请求回复 - 它是如何工作的?
我是新的 NATS。不确定 NATS 请求回复的工作原理。
据我了解,这种模式可用于双向通信,但问题是,它是否适用于相同的消息 ID/线程?如果不是,我们不能为同一目的使用两个不同的队列吗?它与 NATS 的 pub-sub 或 queue 模式有何不同?
有人可以提供更多的用例吗?
谢谢。
go - 在为 nats-streaming 设置处理程序时进行比赛数据检测
对于 nats-streaming 订阅,处理程序需要如下所示
我创建了以下函数,试图获取他们的处理程序,然后调用我自己的处理返回的消息。
使用 go test -race 我在循环/调用我的处理程序的区域周围得到一个数据警告竞争条件。我正在寻找一些关于如何改进它以消除比赛警告的建议。
== 比赛检测输出
链接到项目https://github.com/chadit/MessageQueueExamples/tree/master/nats-streaming/nats
nats.io - NATS 发布/订阅确认
在过去的几天里,我一直在用 NATS 和 NATS 流服务器做一些 POC。我从 NATS 流服务器开始,为相同的 Java 客户端编写了一个 Java 客户端,并向/从 NATS 流服务器发布/订阅消息,与 NATS 服务器一起集群。NATS-streaming 非常简洁,guids
当流媒体服务器收到来自发布者的消息时提供确认。我通过注册一个AckHandler
并像这样使用它来实现这一点:
但是,当我开始查看 NATS 服务器(不是流式传输)时,我找不到任何这样的 AckHandler(或其他任何东西)可以向我提供确认guid
消息已成功发布。
NATS 流服务器有很多我正在寻找的内置功能 - 例如,message acknowledgements
(max_age
消息的 TTL)durable subscriptions
等。但它缺乏当前最新版本的集群功能。另一方面,NATS 服务器提供了集群功能,但我找不到 NATS-streaming 提供的其他功能(除非我在文档中错过了它)。
我知道有一个未解决的问题是要在单个表中列出 NATS 与 NATS 流功能,以供参考,但目前还没有完成。
当消息发布到 NATS 服务器时,NATS 服务器是否提供确认?还是确认其中一个订阅者订阅了一条消息?
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 中),我该怎么做才能做到这一点?
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
分隔符?
谢谢你的时间!