dependency
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
ActivemqProducerTest
public class ActivemqProducerTest {
private static final String producer_broker_url = "failover:(tcp://localhost:61617,tcp://localhost:61618,tcp://localhost:61619)";
private static final String username = "admin";
private static final String password = "admin123";
private static final String destination_queue = "queue.test01";
private static final String destination_topic = "topic.test01";
public static void main(String[] args) throws JMSException {
produceInQueue();
produceInTopic();
}
private static void produceInQueue() throws JMSException {
// activeMQ connection factory
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(producer_broker_url);
activeMQConnectionFactory.setUserName(username);
activeMQConnectionFactory.setPassword(password);
Connection connection = activeMQConnectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQQueue dest = new ActiveMQQueue(destination_queue);
TextMessage textMessage = session.createTextMessage();
textMessage.setText("this is a test...");
MessageProducer producer = session.createProducer(dest);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
producer.send(textMessage);
connection.close();
}
private static void produceInTopic() throws JMSException {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(producer_broker_url);
activeMQConnectionFactory.setUserName(username);
activeMQConnectionFactory.setPassword(password);
Connection connection = activeMQConnectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQTopic dest = new ActiveMQTopic(destination_topic);
MapMessage mapMessage = session.createMapMessage();
mapMessage.setString("key01","val01");
mapMessage.setInt("key02", 2);
MessageProducer producer = session.createProducer(dest);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
producer.send(mapMessage);
connection.close();
}
}
public class ActivemqCustomerTest {
private static final String producer_broker_url = "failover:(tcp://localhost:61617,tcp://localhost:61618,tcp://localhost:61619)";
private static final String username = "admin";
private static final String password = "admin123";
private static final String destination_queue = "queue.test01";
private static final String destination_topic = "topic.test01";
public static void main(String[] args) throws JMSException {
consumeTopic();
consumeTopic();
consumeQueue();
}
private static void consumeTopic() throws JMSException {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(producer_broker_url);
activeMQConnectionFactory.setUserName(username);
activeMQConnectionFactory.setPassword(password);
Connection connection = activeMQConnectionFactory.createConnection();
connection.setExceptionListener(new ExceptionListener(){
@Override
public void onException(JMSException exception) {
System.out.println("JMSException:"+exception.getMessage());
}
});
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQTopic dest = new ActiveMQTopic(destination_topic);
MessageConsumer consumer = session.createConsumer(dest);
consumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage){
System.out.println("message = [" + ((TextMessage) message).getText() + "]");
}
if (message instanceof MapMessage){
MapMessage mapMessage = (MapMessage) message;
System.out.println("key01 = [" + mapMessage.getString("key01") + "]");
System.out.println("key02 = [" + mapMessage.getInt("key02") + "]");
}
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// connection.close();
}
private static void consumeQueue() throws JMSException {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(producer_broker_url);
activeMQConnectionFactory.setUserName(username);
activeMQConnectionFactory.setPassword(password);
Connection connection = activeMQConnectionFactory.createConnection();
connection.setExceptionListener(new ExceptionListener(){
@Override
public void onException(JMSException exception) {
System.out.println("JMSException:"+exception.getMessage());
}
});
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQQueue dest = new ActiveMQQueue(destination_queue);
MessageConsumer consumer = session.createConsumer(dest);
consumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage){
System.out.println("message = [" + ((TextMessage) message).getText() + "]");
}
if (message instanceof MapMessage){
MapMessage mapMessage = (MapMessage) message;
System.out.println("key01 = [" + mapMessage.getString("key01") + "]");
System.out.println("key02 = [" + mapMessage.getInt("key02") + "]");
}
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// connection.close();
}
}
集群配置地址:https://blog.51cto.com/881206524/2129863
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。