进程内 ActiveMQ 生产者/消费者示例?
Posted
技术标签:
【中文标题】进程内 ActiveMQ 生产者/消费者示例?【英文标题】:In-process ActiveMQ producer/consumer example? 【发布时间】:2010-10-19 03:33:21 【问题描述】:我正在研究将 ActiveMQ 用作我的嵌入式进程内消息队列 应用程序,但我对如何启动这样一个应用程序有点困惑 向上。我的设想是这样的(当然是伪代码):
configureBroker ()
broker.start ()
createProducer (broker)
producer.start ()
for each desired consumer
createConsumer (broker)
consumer.start ()
waitForSignal ()
signalProducerShutdown ()
waitForEmptyQueues ()
signalConsumerShutdown ()
broker.stop ()
我试图组装一个简单的版本,但我不知道如何编写 生产者和消费者以一种让他们永远工作的方式,或者 直到被告知退出。做这个的最好方式是什么?我说的是线程方面。我需要/想要在自己的线程中产生什么,等等......
我对基于消息队列的应用程序完全陌生,所以请详细说明您的示例。
【问题讨论】:
【参考方案1】:当您指定 ActiveMQConnectionFactory 时,您可以指定“vm://”,其中 name 是代理的内部虚拟机特定名称,它将在 VM 内启动代理。
例如,
String broker = "vm://***Test";
ActiveMQConnectionFactory connectionFactory =
new ActiveMQConnectionFactory(broker);
Connection amqcon = connectionFactory.createConnection();
amqcon.start();
您可以从那里创建您的生产者或消费者,就像在网络上一样。只要您为代理使用相同的名称,您就可以让多个线程/代码打开/与同一个 VM 实例通信。
此解决方案仅允许与 VM 通信,不打开任何外部端口。我假设这就是您正在寻找的,因为您说您想要嵌入的进程内队列。
【讨论】:
以上是关于进程内 ActiveMQ 生产者/消费者示例?的主要内容,如果未能解决你的问题,请参考以下文章