俊星的BLOG

          ActiveMQ初探

          Apache ActiveMQ是一個高性能的消息代理,實現了JMS 1.1。
          目前的最新版本是5.4.1
          1、下載相關包,并將activemq-all-5.4.1.jar加入到工程中。

          2、運行bin目錄下的actionmq.bat文件,啟動broker,在conf下是相關的配置文件,例如activemq.xml

          3、可通過訪問http://localhost:8161/admin/來查看啟動情況,有可通過netstat -an|find "61616" 來查看端口,因為通過查看activemq.xml中即可發現傳輸連接器即配置的占用61616端口:
          <transportConnectors>
                  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
           </transportConnectors>

          4、編寫消息接收類:
          import javax.jms.Connection;
          import javax.jms.ConnectionFactory;
          import javax.jms.Destination;
          import javax.jms.JMSException;
          import javax.jms.MessageConsumer;
          import javax.jms.Session;
          import javax.jms.TextMessage;

          import org.apache.activemq.ActiveMQConnection;
          import org.apache.activemq.ActiveMQConnectionFactory;

          public class JmsReceiver {
              
          public static void main(String[] args) throws JMSException {
                  ConnectionFactory connectionFactory 
          = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                          ActiveMQConnection.DEFAULT_PASSWORD, 
          "tcp://localhost:61616");
                  Connection connection 
          = connectionFactory.createConnection();
                  connection.start();
                  Session session 
          = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                  
          // 需要在activemq的控制臺中創建queue:testqueue
                  Destination destination = session.createQueue("testqueue");
                  MessageConsumer consumer 
          = session.createConsumer(destination);
                  
                  
          while (true{
                      TextMessage message 
          = (TextMessage) consumer.receive(1000);
                      
          if (null != message)
                          System.out.println(
          "收到消息:" + message.getText());
                      
          else
                          
          break;
                  }

                  session.close();
                  connection.close();
              }

          }


          5、編寫消息產生類:
          import javax.jms.Connection;
          import javax.jms.ConnectionFactory;
          import javax.jms.DeliveryMode;
          import javax.jms.Destination;
          import javax.jms.JMSException;
          import javax.jms.MessageProducer;
          import javax.jms.Session;
          import javax.jms.TextMessage;

          import org.apache.activemq.ActiveMQConnection;
          import org.apache.activemq.ActiveMQConnectionFactory;

          public class JmsSender {
              
          public static void main(String[] args) throws JMSException {
                  ConnectionFactory connectionFactory 
          = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                          ActiveMQConnection.DEFAULT_PASSWORD, 
          "tcp://localhost:61616");
                  Connection connection 
          = connectionFactory.createConnection();
                  connection.start();
                  Session session 
          = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                  Destination destination 
          = session.createQueue("testqueue");
                  MessageProducer producer 
          = session.createProducer(destination);
                  producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                  sendMsg(session, producer);
                  session.commit();
                  connection.close();
              }


              
          public static void sendMsg(Session session, MessageProducer producer) throws JMSException {
                  
          // 創建一條文本消息
                  TextMessage message = session.createTextMessage("你好 ActiveMQ!");
                  producer.send(message);
                  System.out.println(
          "");
              }

          }


          6、通過訪問http://localhost:8161/admin/,在queue中創建testqueue,先執行消息發送類,后執行消息接收類,借看看到消息接收類的如下執行結果:
          收到消息:你好 ActiveMQ!
          收到消息:你好 ActiveMQ!

          (執行多次消息發送類,則會接受到多條“你好 ActiveMQ!”消息)

          posted on 2010-10-28 17:53 俊星 閱讀(2910) 評論(1)  編輯  收藏

          評論

          # re: ActiveMQ初探 2011-04-21 16:10 71569973

          測試通過。多謝  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 勃利县| 合作市| 阳西县| 宁津县| 澄城县| 台前县| 高陵县| 慈溪市| 泸州市| 白银市| 靖江市| 饶河县| 抚远县| 南平市| 如东县| 广昌县| 淮北市| 临汾市| 洱源县| 平度市| 柳河县| 定西市| 涿鹿县| 开阳县| 上林县| 朔州市| 陕西省| 盐边县| 杨浦区| 江永县| 高雄市| 洛阳市| 措勤县| 平乡县| 昭通市| 宜川县| 禄劝| 科尔| 乐东| 静乐县| 潞城市|