"max allowed size 128000 bytes" 当有很多 publisher/subscribers 时达到

"max allowed size 128000 bytes" reached when there are a lot of publisher/subscribers

我在 Akka.net 集群中使用分布式 pub/sub,当 pub/sub 增长到大约1000 个订阅者和 3000 个发布者。

max allowed size 128000 bytes, actual size of encoded Akka.Cluster.Tools.PublishSubscribe.Internal.Delta was 325691 bytes

我不知道,但我猜分布式 pub/sub 正试图将 pub/sub 列表传递给集群上的其他参与者系统?

无论如何,由于 this post,我对提高大小限制有点犹豫。那么纠正这个问题的合理方法是什么?

您可能想使用分布式 pub/sub HOCON 设置来解决问题。 Akka.Cluster.DistributePubSub 中的消息被组合在一起并作为增量发送。您可能对两个设置感兴趣:

  1. akka.cluster.pub-sub.max-delta-elements = 3000 表示增量消息最多可以包含多少个项目。 3000 是默认值,您可能希望降低它以减小增量消息的大小(这在您的情况下似乎是个问题)。
  2. akka.cluster.pub-sub.gossip-interval = 1s 间接影响八卦的发送频率。它们发送的频率越高,它们可能越小 - 假设通道持续高度饱和。

如果这些方法没有帮助,您还可以考虑引入 custom serializers 有效载荷占用空间较小的方法来减小自定义消息的大小。