如何订阅大文件? -NATS流媒体订阅问题

时间:2018-12-02 02:18:37

标签: nats.io nats-streaming-server

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

当我发送文本文件(〜9B)时,它起作用


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

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


但是,当我发送文本文件(〜80MB)时,订阅无法正常工作。


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

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


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

byte []有效负载= File.ReadAllBytes(“ test.txt”);

....

字符串guid = c.Publish(主题,有效载荷,(obj,pubArgs)=>

请帮助我

1 个答案:

答案 0 :(得分:0)

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

您有2个解决问题的方法:

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