Question

J'enquête à l'aide ActiveMQ comme une file d'attente de message incorporé en cours dans mon application, mais je suis un peu coincé sur la façon dont je vais sur le démarrage d'une telle application vers le haut. J'imagine comme si (pseudocode, bien sûr):

configureBroker ()
broker.start ()

createProducer (broker)
producer.start ()

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

waitForSignal ()
signalProducerShutdown ()

waitForEmptyQueues ()
signalConsumerShutdown ()

broker.stop ()

J'ai essayé d'assembler une version simple de cela, mais je suis coincé sur la façon d'écrire les producteurs et les consommateurs de manière à les faire travailler pour toujours, ou jusqu'à ce que dit de cesser de fumer. Quelle est la meilleure façon de procéder? Je parle en particulier sur l'aspect de filetage; Que dois-je / vouloir reproduire au large dans son propre fil, etc ...

Je suis tout à fait nouveau pour les applications basées sur la file d'attente de messages, donc s'il vous plaît être bavard avec vos exemples.

Était-ce utile?

La solution

Lorsque vous spécifiez le ActiveMQConnectionFactory, vous pouvez spécifier « vm: // » où le nom est le nom spécifique intra-vm de votre courtier et il va commencer le courtier au sein de la machine virtuelle.

Par exemple,

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

De là, vous pouvez créer vos producteurs ou consommateurs la même chose que si elle était sur le réseau. Tant que vous utilisez le même nom pour le courtier, vous pouvez avoir plusieurs threads / code ouvert / parler à la même instance VM.

Cette solution ne permet que la communication avec la machine virtuelle, il ne s'ouvre pas de ports externes. Je suppose que c'est ce que vous recherchez depuis que vous avez dit que vous vouliez embedded, les files d'attente dans les processus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top