发送大于1MB的消息是否是错误的做法?

问题描述

通过NATS发送大于1MB的消息是否是错误的做法?例如,JSON响应的大小约为2MB。如果是不好的做法,将消息分解成较小的响应会是更好的方法,还是NATS是否支持将多个响应发送回单个请求? (非常感谢使用C#,Node或Java的示例)。

解决方法

大小限制为1 MB-请查看Is there a message size limitation in NATS?

大于大小限制的邮件不会发送。您可以在服务器设置中增加大小限制,但是NATS人士可能有很好的理由来限制大小,所以我不建议这样做。

Request-Reply模式不提供对请求的多次答复。在类似的情况下,我会这样进行:

  • 请求者:创建一个新的唯一主题名称,例如UUID。
  • 请求者:订阅该主题。
  • 请求者:发送一条主题设置为“回复”的消息。
  • 请求者:收集到达主题的所有响应,直到“响应结束”消息到达或达到超时为止。

对“响应者”进行编码,以便它为请求者提供所需的信息(其中包括“响应结束”消息)。

这样,您可以拆分较大的响应,例如分成1 MB的块。