我使用的ActiveMQ作为在嵌入过程中的消息队列我的调查 应用程序,但我坚持我如何去启动这样的应用程序有点 起来。我设想它像这样(伪代码,当然):

configureBroker ()
broker.start ()

createProducer (broker)
producer.start ()

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

waitForSignal ()
signalProducerShutdown ()

waitForEmptyQueues ()
signalConsumerShutdown ()

broker.stop ()

我试着组装的这一个简单的版本,但我卡上怎么写 以这样的方式作为生产者和消费者,让他们永远工作,或 直到被告知退出。做这个的最好方式是什么?我对线程方面具体来说;我需要什么/想在自己的线程产卵了,等...

我是完全新的消息队列基础的应用程序,所以请详细与你的例子。

有帮助吗?

解决方案

在指定ActiveMQConnectionFactory,您可以指定“VM://”里的名字是你的经纪人的内部虚拟机的具体名称,它将启动虚拟机内的经纪人。

例如,

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

从那里,你可以创建你的生产者或消费者一样的,如果它是在网络上。只要你的经纪人使用相同的名称,你可以有多个线程/码开/聊到同一个虚拟机实例。

这个解决方案仅允许通信与VM,它不打开任何外部端口。我假定这就是你要找既然你说你想嵌入,进程队列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top