activemq安全机制
生活随笔
收集整理的這篇文章主要介紹了
activemq安全机制
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
activemq安全機(jī)制
cd /usr/local/software/apache-activemq-5.15.0 cd /usr/local/software/apache-activemq-5.15.0/conf/ vim activemq.xml129 130 <plugins> 131 <simpleAuthenticationPlugin> 132 <users> 133 <authenticationUser username="admin" password="123456" groups="users,admins"/> 134 </users> 135 </simpleAuthenticationPlugin> 136 </plugins> import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Sender {public static void main(String[] args) throws Exception {// 第一步:建立ConnectionFactory工廠對(duì)象,需要填入用戶名、密碼、以及要連接的地址,均使用默認(rèn)即可,默認(rèn)端口tcp://loalhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin","1234","tcp://localhost:61616");// 第二步:通過(guò)ConnectionFactory工廠對(duì)象我們創(chuàng)建一個(gè)Connection連接,并且調(diào)用Connection的start方法開(kāi)啟連接,Connection默認(rèn)是關(guān)閉的Connection connection = connectionFactory.createConnection();connection.start();// 第三步:通過(guò)connection對(duì)象創(chuàng)建Session會(huì)話(上下文環(huán)境對(duì)象),用于接收消息,參數(shù)配置1為是否啟用事務(wù),參數(shù)配置2為簽收模式//Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);// 使用事務(wù)的方式進(jìn)行消息的發(fā)送//Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);// 使用client端簽收的方式Session session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE);// 第四步:通過(guò)Session創(chuàng)建Destination對(duì)象,指的是一個(gè)客戶端用來(lái)指定生產(chǎn)消息目標(biāo)和消費(fèi)消息來(lái)源的對(duì)象,在PTP模式中,Destionation被稱為QUEUEDestination destination = session.createQueue("queue1");// 第五步:我們需要通過(guò)Session對(duì)象創(chuàng)建消息的發(fā)送和接收對(duì)象(生產(chǎn)者和消費(fèi)者)MessageProducer/MessageConsumer//MessageProducer messageProducer = session.createProducer(destination);MessageProducer messageProducer = session.createProducer(null);// 第六步:我們可以使用MessageProducer的setDeliveryMode方法為其設(shè)置持久化特性和非持久化特性(deliveryMode)//messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 第七步:最后我們使用JMS規(guī)范的TextMessage形式創(chuàng)建數(shù)據(jù)(通過(guò)Session對(duì)象),并用MessageProducer的send方法發(fā)送數(shù)據(jù) // for(int i=0;i<5;i++) { // TextMessage textMessage = session.createTextMessage("我是消息內(nèi)容"); // textMessage.setText("我是消息內(nèi)容,id為: " + i); // //messageProducer.send(textMessage); // // 第一個(gè)參數(shù):目的地 // // 第二個(gè)參數(shù):消息 // // 第三個(gè)參數(shù):是否持久化 // // 第四個(gè)參數(shù):優(yōu)先級(jí)(0-9 0-4表示普通 5-9表示加急 默認(rèn)為4) // // 第五個(gè)參數(shù):消息在mq上的存放有效期 // messageProducer.send(destination, textMessage, DeliveryMode.NON_PERSISTENT, i, 1000*60*2); // System.out.println("生產(chǎn)者: " + textMessage.getText()); // }TextMessage textMessage1 = session.createTextMessage();textMessage1.setText("我是消息內(nèi)容0");messageProducer.send(destination, textMessage1, DeliveryMode.NON_PERSISTENT, 4, 1000*60*2);TextMessage textMessage2 = session.createTextMessage();textMessage2.setText("我是消息內(nèi)容9");messageProducer.send(destination, textMessage2, DeliveryMode.NON_PERSISTENT, 4, 1000*60*2);TextMessage textMessage3 = session.createTextMessage();textMessage3.setText("我是消息內(nèi)容2");messageProducer.send(destination, textMessage3, DeliveryMode.NON_PERSISTENT, 4, 1000*60*2);// 使用事務(wù)提交//session.commit();if(connection!=null) { connection.close();}} } import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Receiver {public static void main(String[] args) throws Exception {// 第一步:建立ConnectionFactory工廠對(duì)象,需要填入用戶名、密碼、以及要連接的地址,均使用默認(rèn)即可,默認(rèn)端口tcp://loalhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin","1234","tcp://localhost:61616");// 第二步:通過(guò)ConnectionFactory工廠對(duì)象我們創(chuàng)建一個(gè)Connection連接,并且調(diào)用Connection的start方法開(kāi)啟連接,Connection默認(rèn)是關(guān)閉的Connection connection = connectionFactory.createConnection();connection.start();// 第三步:通過(guò)connection對(duì)象創(chuàng)建Session會(huì)話(上下文環(huán)境對(duì)象),用于接收消息,參數(shù)配置1為是否啟用事務(wù),參數(shù)配置2為簽收模式//Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);Session session = connection.createSession(Boolean.FALSE, Session.CLIENT_ACKNOWLEDGE);// 第四步:通過(guò)Session創(chuàng)建Destination對(duì)象,指的是一個(gè)客戶端用來(lái)指定生產(chǎn)消息目標(biāo)和消費(fèi)消息來(lái)源的對(duì)象,在PTP模式中,Destionation被稱為QUEUEDestination destination = session.createQueue("queue1");// 第五步:我們需要通過(guò)Session對(duì)象創(chuàng)建消息的發(fā)送和接收對(duì)象(生產(chǎn)者和消費(fèi)者)MessageProducer/MessageConsumerMessageConsumer consumer = session.createConsumer(destination);while(true) {TextMessage msg = (TextMessage) consumer.receive();// 手工去簽收消息. 另起一個(gè)線程(TCP)去通知我們的MQ服務(wù) 確認(rèn)簽收msg.acknowledge();Thread.sleep(100);if(msg==null)break;System.out.println("收到的內(nèi)容"+msg.getText());}if(connection!=null) {connection.close();}} }?
總結(jié)
以上是生活随笔為你收集整理的activemq安全机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: activemq使用
- 下一篇: jQuery课程介绍、Query的介绍、