どのように私は春ブーツJavaで複数のリスナーを実行できますか?

パンカジガーグ:

私は継続的に第三者からのデータフィードを受信し、分未満で周りの100kのメッセージを処理したいのです。だから私は、処理部の負荷を軽減することができますし、100(または任意の数)のうち1つのワーカーが仕事をピックアップし、それを処理キューにメッセージをプッシュしますそれを通してメッセージキューを実装する考え。

私は、メッセージングベースのJMSとのRedisについて読んだが、私は複数のリスナーを実行するかどうかはわかりません。単一リスナーがすでに設定されています。

k.wahome:

スプリングJMSを使用する「低級上部」の文字列、例えば「5-10」、または単純な上限文字列、例えば「10」(下限が、この場合は1である)を介して同時実行制限を指定することを可能にします。

リスナーのコンテナは、常に消費者(setConcurrentConsumers(int型))の最小数を保持し、ゆっくりと消費者の最大数まで拡張されます

見る:

[1] https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jms/config/DefaultJmsListenerContainerFactory.html#setConcurrency-java.lang.String-

[2] https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jms/listener/DefaultMessageListenerContainer.html#setConcurrency-java.lang.String-

春のブート構成Bean内の例:

@Configuration
@EnableJms
public class AppConfig {

    @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
        DefaultJmsListenerContainerFactory factory 
          = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setConcurrency("3-10");
        return factory;
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=363693&siteId=1