创建Topic生产者并往ActiveMQ发送消息
Posted lhq1996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建Topic生产者并往ActiveMQ发送消息相关的知识,希望对你有一定的参考价值。
1 import java.util.Random; 2 import javax.jms.Connection; 3 import javax.jms.ConnectionFactory; 4 import javax.jms.DeliveryMode; 5 import javax.jms.Destination; 6 import javax.jms.JMSException; 7 import javax.jms.MessageProducer; 8 import javax.jms.Session; 9 import javax.jms.TextMessage; 10 import org.apache.activemq.ActiveMQConnectionFactory; 11 12 public class SendMessage { 13 private static final String url = "tcp://localhost:61616"; 14 private static final String TOPICS_NAME = "alarm"; 15 16 public void sendMessage() throws JMSException { 17 // JMS 客户端到JMSProvider 的连接 18 Connection connection = null; 19 try { 20 // 连接工厂,JMS 用它创建连接 21 // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar 22 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); 23 connection = (Connection)connectionFactory.createConnection(); 24 // 启动连接 25 connection.start(); 26 //Session:发送或接收消息的线程 27 // 获取session 28 Session session = (Session) connection.createSession(false, 29 Session.AUTO_ACKNOWLEDGE); 30 // 消息的目的地,消息发送到那个队列 31 Destination destination = session.createTopic(TOPICS_NAME); 32 //MessageProducer:消息发送者(生产者) 33 // 创建消息发送者 34 MessageProducer producer =session.createProducer(destination); 35 // 设置是否持久化 36 //DeliveryMode.NON_PERSISTENT:不持久化 37 //DeliveryMode.PERSISTENT:持久化 38 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 39 40 String msg = ""; 41 int i = 0; 42 do { 43 msg = "第"+i + "次发送的消息:"+new Random(); 44 TextMessage message = session.createTextMessage(msg); 45 Thread.sleep(1000); 46 // 发送消息到目的地方 47 producer.send(message); 48 System.out.println("发送消息:" +msg); 49 i++; 50 } while (i<10); 51 } catch (Exception e) { 52 e.printStackTrace(); 53 } 54 } 55 56 public static void main(String[] args) { 57 SendMessage sndMsg = new SendMessage(); 58 try { 59 sndMsg.sendMessage(); 60 } catch (Exception ex) { 61 System.out.println(ex.toString()); 62 } 63 } 64 }
以上是关于创建Topic生产者并往ActiveMQ发送消息的主要内容,如果未能解决你的问题,请参考以下文章
Springboot整合activeMQ之Topic,不懂也得懂了吧