【问题标题】:How to subscribe the big size file? - NATS Streaming subscribe problem如何订阅大文件? - NATS Streaming 订阅问题
【发布时间】:2019-08-23 19:05:33
【问题描述】:

我是新的 NATS。 我只是尝试使用 NATS-streaming-server 示例发送和接收文本文件。

当我发送一个文本文件(~9B)时,它可以工作


-酒吧 作为客户端“cs-publisher”连接到集群“test-cluster”。 在主题 foo 上发布 1 条消息 网址:nats://localhost:4222 有效载荷为 9 个字节。 在 0.0076917 秒(130 条消息/秒)内发布了 1 条带有确认的消息。

-子 作为客户端“cs-subscriber”连接到集群“test-cluster”。 收到关于主题 foo 的 1 条消息 网址:nats://localhost:4222 在 6E-07 秒内收到 1 条消息(1666666 条消息/秒)。


但是,当我发送一个文本文件(~80MB)时,订阅不起作用。


-酒吧 作为客户端“cs-publisher”连接到集群“test-cluster”。 在主题 foo 上发布 1 条消息 网址:nats://localhost:4222 有效载荷为 77552640 字节。 在 1.2574163 秒内发布了 1 条带有确认的消息(0 条消息/秒)。

-子 作为客户端“cs-subscriber”连接到集群“test-cluster”。 收到关于主题 foo 的 1 条消息 网址:nats://loaclhost:4222


我不知道为什么订阅没有反应。我使用了相同的代码,只是更改了我发送的文件。

byte[] payload = File.ReadAllBytes("test.txt");

....

string guid = c.Publish(subject, payload, (obj, pubArgs) =>

请帮帮我

【问题讨论】:

    标签: nats.io nats-streaming-server


    【解决方案1】:

    问题是 NATS 只支持最大 1 MB 的消息。 https://nats-io.github.io/docs/faq.html#is-there-a-message-size-limitation-in-nats

    你有两个解决问题的方法:

    1. 使用对象存储在其中存储大量数据并在消息中传输引用。
    2. 将您的消息分成多条消息。尽管我在这里会非常小心,因为您不能保证订购,并且消息可能最终(如果它们最终)在不同的订阅者上。因此,这完全会质疑 NATS 的使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 2018-04-04
      • 1970-01-01
      • 2020-02-22
      • 2017-04-28
      相关资源
      最近更新 更多