Create a maven project (quick to)
<! - add activemq dependence -> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.0</version> </dependency>
Creating Manufacturer:
package com.test.producermq; import org.apache.activemq.*; import javax.jms.*; /** * @Title: MessageProducer * @ProjectName activemq * @date 2019/11/89:49 */ public class MessageProducer { // define the connection address ActivMQ private static final String ACTIVEMQ_URL = "tcp://127.0.0.1:61616"; // send message queue name is defined private static final String QUEUE_NAME = "MyMessage"; public static void main(String[] args) throws JMSException { // 1. Create a connection factory ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL); // 2. Create a connection Connection connection = activeMQConnectionFactory.createConnection(); 3. // open connection connection.start(); // 4. Create Session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5. Create a queue destination Destination destination = session.createQueue(QUEUE_NAME); // 6. Create a Producer javax.jms.MessageProducer producer = session.createProducer(destination); // create a simulated 100 messages for (int i = 1 ; i <= 100 ; i++){ TextMessage message = session.createTextMessage("我发送message:" + i); //Send a message producer.send(message); // prints the message local System.out.println ( "I send a message is:" + message.getText ()); } // close the connection connection.close(); } }
After running can be seen:
Creating consumer:
package com.test.consumemq; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /** * @Title: MessageConsumer * @ProjectName activemq * @date 2019/11/89:56 */ public class MessageConsumer { // define the connection address ActivMQ private static final String ACTIVEMQ_URL = "tcp://127.0.0.1:61616"; // send message queue name is defined private static final String QUEUE_NAME = "MyMessage"; public static void main(String[] args) throws JMSException { // 1. Create a connection factory ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL); // 2. Create a connection Connection connection = activeMQConnectionFactory.createConnection(); 3. // open connection connection.start(); // 4. Create Session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5. Create a queue destination Destination destination = session.createQueue(QUEUE_NAME); // 6. Create a consumer javax.jms.MessageConsumer consumer = session.createConsumer(destination); // 7. Creating consumer monitor consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println ( "Get Message:" + textMessage.getText ()); } catch (JMSException e) { e.printStackTrace (); } } }); } }
After running can be seen:
Message has been consumed
Message Queue mode, and it is only being used by a consumer, and will not be shared