Stream 如何设置akka流发布服务器的inputBuffer?

Stream 如何设置akka流发布服务器的inputBuffer?,stream,akka,Stream,Akka,我在使用Akka streams的上下文中,单个源的接收器会来来去去去。因此,我从源创建发布服务器,并根据需要附加订阅服务器: val publisher= mySource.runWith(Sink.publisher(true)) 与 一些订阅者将比其他订阅者更快,我希望让更快的订阅者独立于最慢的订阅者进行操作,至少达到发布者输入缓冲区允许的范围。此缓冲区由Sink.publisher(true)方法上的注释描述: 如果fanout为true,则具体化的发布者将支持多个订阅者,并且为此阶段

我在使用Akka streams的上下文中,单个源的接收器会来来去去去。因此,我从源创建发布服务器,并根据需要附加订阅服务器:

val publisher= mySource.runWith(Sink.publisher(true))

一些订阅者将比其他订阅者更快,我希望让更快的订阅者独立于最慢的订阅者进行操作,至少达到发布者输入缓冲区允许的范围。此缓冲区由Sink.publisher(true)方法上的注释描述:

如果
fanout
true
,则具体化的
发布者将支持多个
订阅者
,并且为此阶段配置的
输入缓冲区的大小将成为最快[[org.reactivestreams.Subscriber]的最大元素数在由于背压而减慢处理速度之前,可以先于最慢的一个

我的问题是,我不知道如何为“这个阶段”设置这个inputBuffer值。我所看到的最接近的一个例子是在的Droping Broadcast部分中描述的,但这似乎坚持使用Flow DSL。我相信我不能使用DSL,因为我需要不断增加新的订户

因此,我的整体流速度被最慢的订阅者延迟。我试图做的一个相关方面是确保不同的订阅者在不同的线程上运行(不创建作为订阅者的显式参与者)。

它看起来像(对于Akka Streams 2.0.1):

publisher.subscribe(subscriber1)// There will be others
Sink.asPublisher(true).addAttributes(Attributes.inputBuffer(initialSize, maxSize))