質問

私は自分の中に埋め込まれたインプロセスのメッセージキューとしてのActiveMQを使用して調査しています アプリケーションが、私は、私はこのようなアプリケーションを起動するに取り掛かる方法に少しこだわっています アップ。私は(もちろん、擬似コード)ので、同じようにそれを思い描くます:

configureBroker ()
broker.start ()

createProducer (broker)
producer.start ()

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

waitForSignal ()
signalProducerShutdown ()

waitForEmptyQueues ()
signalConsumerShutdown ()

broker.stop ()

私はこれの簡易版を組み立てるためにしようとしましたが、私は書き方についてこだわっています 彼らは永遠に動作していような方法で生産者と消費者、または までに終了するように指示。これを行うための最善の方法は何ですか?私は、スレッドの側面について、具体的に言えばです。私は

... /独自のスレッドなどでオフに産卵したいものが必要なのか

私はあなたの例で冗長てください、メッセージキューベースのアプリケーションに対して完全に新たなんだ。

役に立ちましたか?

解決

名前はあなたのブローカーの内のVM固有の名前であり、それはVM内のブローカーを開始します:あなたはActiveMQConnectionFactoryを指定すると、

、あなたは「// VM」を指定することができます。

たとえば、

String broker = "vm://stackOverflowTest";
ActiveMQConnectionFactory connectionFactory = 
        new ActiveMQConnectionFactory(broker);
Connection amqcon = connectionFactory.createConnection();
amqcon.start();
それは、ネットワークを介したかのように

そこから、同じあなたの生産者や消費者を作成することができます。限り、あなたはブローカーに同じ名前を使用して、あなたは同じVMインスタンスに複数のスレッド/コードオープン/話を持つことができます。

この溶液は、それが任意の外部ポートを開くことなく、VMとの通信を可能にします。私は、これは、あなたが、インプロセスのキューを組み込みたいと言っていたので、探していたものですと仮定しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top