我有一個彈簧集成應用程序,它有一個pub-sub頻道和兩個訂閱者 - 一個發佈消息給Kafka,另一個將消息寫入文件。問題在於將消息寫入文件的服務激活器無法跟上產生給Kafka的其他服務激活器的速度。這會導致整個消息處理速度變慢。爲了克服這個問題,我在pub-sub通道和寫入文件的服務激活器之間增加了一個額外的層。一個變壓器,除了消耗信息,並將信息放入由文件撰寫者消耗的直接通道中。這改善了我的情況,但我想知道這是否是正確的方法?下面的示例配置:緩衝彈簧集成發佈 - 訂閱頻道
所有的<int:publish-subscribe-channel id="pschannel"/>
<int:service-activator id="kafkaSA" ref="producer" input- channel="pschannel" method="publish"/>
<int:transformer input-channel="pschannel" ref="dummytransformer" method="doNothing" output-channel="directChannel"/>
<bean id="dummytransformer" class="org.test.DummyTransformer"/>
<int:channel id="directChannel">
<int:queue capacity="200000" />
<int:channel>
<int:service-activator id="fileSA" ref="filewriter" input-channel="directChannel" method="publish" >
<int:poller max-messages-per-poll="10000" fixed-delay="100" />
</int:service-activator>