インプロセスのActiveMQプロデューサ/コンシューマ例?
質問
私は自分の中に埋め込まれたインプロセスのメッセージキューとしての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との通信を可能にします。私は、これは、あなたが、インプロセスのキューを組み込みたいと言っていたので、探していたものですと仮定しています。
所属していません StackOverflow