3

私はActiveMQをアプリケーションに埋め込まれたインプロセスメッセージキューとして使用することを調査していますが、そのようなアプリケーションを起動する方法に少し行き詰まっています。私はそれをそのように想像しています(もちろん、擬似コード):

configureBroker ()
broker.start ()

createProducer (broker)
producer.start ()

for each desired consumer
    createConsumer (broker)
    consumer.start ()

waitForSignal ()
signalProducerShutdown ()

waitForEmptyQueues ()
signalConsumerShutdown ()

broker.stop ()

私はこれの簡単なバージョンを組み立てようとしましたが、プロデューサーとコンシューマーが永遠に機能するように、または終了するように言われるまで、それらを作成する方法に固執しています。これを行うための最良の方法は何ですか?私は特に糸脱毛の側面について話している。独自のスレッドなどで何が必要/スポーンしたいのか...

私はメッセージキューベースのアプリケーションにまったく慣れていないので、例を詳しく説明してください。

4

1 に答える 1

3

ActiveMQConnectionFactory を指定する場合、「vm://」を指定できます。name は VM 内固有のブローカー名であり、VM 内でブローカーを起動します。

例えば、

String broker = "vm://stackOverflowTest";
ActiveMQConnectionFactory connectionFactory = 
        new ActiveMQConnectionFactory(broker);
Connection amqcon = connectionFactory.createConnection();
amqcon.start();

そこから、ネットワーク経由の場合と同じようにプロデューサーまたはコンシューマーを作成できます。ブローカーに同じ名前を使用している限り、複数のスレッド/コードを開いたり、同じ VM インスタンスと通信したりできます。

このソリューションでは、VM との通信のみが許可され、外部ポートは開かれません。組み込みのインプロセス キューが必要だとおっしゃっていたので、これが探していたものだと思います。

于 2009-12-03T18:09:45.667 に答える