ActiveMQ 의 설치, 활용

7845 단어 ActiveMQ
1. ActiveMQ 다운로드:http://activemq.apache.org/
2. 압축 을 풀 고 activemq. bat 를 찾 습 니 다. 더 블 클릭 으로 콘 솔 을 열 면 tomcat 를 여 는 것 과 같 습 니 다.그림:
ActiveMQ的安装、运用_第1张图片
3. 브 라 우 저 에서 activemq 가 올 바 르 게 시작 되 었 는 지 확인 합 니 다.http://localhost:8161/admin, 열 어 보 니 이렇게:  
                   
사용자 이름: admin  비밀번호: admin
확인 하면 로그 인 할 수 있 습 니 다.
4 、 Queue 를 새로 만 들 수 있 습 니 다.  Queue Name 뒤에 있 는 네모 난 상자 에 "My First Queue" 를 입력 하고, 바로 뒤에 있 는 "Create" 단 추 를 누 르 면 됩 니 다.
wKiom1mtDTuT1eIjAAAYe2FFyO0402.png
아래 Queues: 목록 에 새로 만 든 Queue 가 표 시 됩 니 다.
이것 은 이미 사용 한 것 입 니 다. 사실 처음에 수 치 는 이 랬 습 니 다.   
                                          
Name    :      MyFirstQueue     
Number Of   ending Message  : 0
Number Of   Consumers :0
Message Enqueued:0
Message Dequeued:0
5. 다음 에 우 리 는 IDEA 를 통 해 두 개의 자바 류 를 만 듭 니 다. 하 나 는 메시지 생산자 이 고 하 나 는 메시지 소비자 입 니 다.
이것 은 소식 생산자 입 니 다.
package com.zfm.activemq;

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

import javax.jms.*;

public class Sender {
    private static final int SEND_NUMBER =5;
    public static void main(String[] args){
        //ConnectionFactory:    
        ConnectionFactory  connectionFactory;
        //Connection:JMS    JMS Provider   
        Connection connection = null;
        //Session :    ,          
        Session session;
        //Destination:      
        Destination destination;
        //MessageProducer:     :  
        MessageProducer messageProducer;
        //  connectionFactory    

        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD,
                "tcp://localhost:61616"/*ActiveMQ     TCP     61616,*/
        );

        try{
            //          
            connection = connectionFactory.createConnection();
            //  
            connection.start();
            //      
            session = connection.createSession(Boolean.TRUE,
                    Session.AUTO_ACKNOWLEDGE);
            //  session   

            destination = session.createQueue("FMDemo");
            //       
            messageProducer = session.createProducer(destination);

            //  ·    
            messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            //    
            sendMeaasge(session,messageProducer);
            session.commit();


        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if(null!=connection){
                    connection.close();
                }
            }catch (Throwable t){

            }
        }
    }

    public static void sendMeaasge(Session session,MessageProducer producer) throws JMSException {
        for(int i=1;i<=SEND_NUMBER;i++){
            TextMessage  message = session.createTextMessage("ActiveMq      " +i);
            //        
            System.out.println("    : ActiveMq    :" + i);
            producer.send(message);
        }

    }
}

메시지 소비자:
package com.zfm.activemq;

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

import javax.jms.*;

public class Receiver {
    public static void main(String[] rags) throws JMSException {
        //Connection    
        ConnectionFactory connectionFactory;
        //Connection:JMS    JMS provider
        Connection connection = null;
        //Session :           ·  
        Session session;
        //Destination:      ,      
        Destination destination;
        //   ,     
        MessageConsumer messageConsumer;

        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD,
                "tcp://localhost:61616"//ActiveMQ     TCP     61616,
        );
        try{
            //          
            connection = connectionFactory.createConnection();
            //     
            connection.start();

            //       
            session = connection.createSession(Boolean.FALSE
            ,Session.AUTO_ACKNOWLEDGE);

            destination = session.createQueue("FMDemo");
            messageConsumer = session.createConsumer(destination);
            while(true){
                //             
                TextMessage message = (TextMessage)messageConsumer.receive(100000);
                if(null!=message){
                    System.out.println("    " + message.getText());
                }else{
                    break;
                }
            }



        }catch (Exception e){

        }finally {
            try{
                if(null != connection) {
                    connection.close();
                }
            }catch(Throwable t){

            }
        }

    }
}

Sender. java 를 실행 하면 새로 고침http://localhost:8161/admin/queues.jsp때,
Queues 표 의 인자 가 변 했 습 니 다:
Name    :     MyFirstQueue
Number Of   Pending Message  :5
Number Of   Consumers :0
Message  Enqueued :5
Message  Dequeued    :0
이 때 메 시 지 를 보 냈 고 Sender 의 main 함수 가 계속 실행 되 지 않 았 기 때문에 콘 솔 에 인쇄 되 었 습 니 다.
발송 메시지: ActiveMq 발송 메시지: 1 발송 메시지: ActiveMq 발송 메시지: 2 발송 메시지: ActiveMq 발송 메시지: 3 발송 메시지: ActiveMq 발송 메시지: 4 발송 메시지: ActiveMq 발송 메시지: 5Process finished with exit code 0
프로 세 스 가 끝 났 습 니 다.
이 때 Receiver. java 를 다시 실행 하고 콘 솔 에서 인쇄 합 니 다.
받 은 메시지 ActiveMq 보 낸 메시지 1 받 은 메시지 ActiveMq 보 낸 메시지 2 받 은 메시지 ActiveMq 보 낸 메시지 3 받 은 메시지 ActiveMq 보 낸 메시지 4 받 은 메시지 ActiveMq 보 낸 메시지 5
Process finished with exit code 0
이때, 다시 갱신http://localhost:8161/admin/queues.jsp이 때 표 의 수 치 는 다음 과 같 습 니 다.
Name    :     MyFirstQueue
Number Of   Pending Message  :0
Number Of   Consumers :0
Message  Enqueued :5
Message  Dequeued    :5
또 하 나 는 Receiver. java 가 실행 이 끝나 지 않 았 을 때 Receiver 프로 세 스 만 열 었 기 때문에 Number Of  Consumers:1。
Sender 가 보 낸 메 시 지 는 Receiver 에 의 해 받 았 음 을 알 수 있다.당신 은 먼저 Sender 메 시 지 를 보 낼 수 있 습 니 다. 이 럴 때 메시지 가 이미 메시지 대기 열 에 도착 했다 면 발송 자가 어떤 답장 을 받 기 를 바라 지 않 는 다 면 Sender 를 멈 출 수 있 습 니 다.Receiver 는 똑 같이 메 시 지 를 받 습 니 다.
다음은 ActiveMQ 의 몇 가지 기본 통신 방식 을 소개 합 니 다. 게시 - 구독 모드 와 점 대 점 모드 입 니 다.
기본 프로 세 스:
1. ActiveMQConnection Factory 획득.
2. factory 를 이용 하여 Connection 을 획득 합 니 다.
3. connection 을 시작 합 니 다.
4. connection 을 통 해 Session 을 만 듭 니 다.
5. 세 션 의 Destination 을 지정 합 니 다.
6. 메 시 지 를 보 내 는 사람 은 Message Producer 를 만 들 고 메 시 지 를 받 는 사람 은 Message Consumer 를 만 듭 니 다.
7. JMS Message 를 보 내 고 받 습 니 다.
8. 모든 JMS 자원 을 닫 습 니 다.
ActiveMQ 자세 한 내용 은 다음 과 같 습 니 다.http://shmilyaw-hotmail-com.iteye.com/blog/1897635
ActiveMQ 에 대해 말하자면 그 는 자바 메시지 서비스 (JMS) 의 규범 중 하나 입 니 다. JMS 상세 한 내용 은 다음 과 같 습 니 다.http://blog.csdn.net/jiuqiyuliang/article/details/46701559   화해시키다   http://blog.csdn.net/jiuqiyuliang/article/details/47160259。
어떤 경우 에 ActiveMQ 를 사용 합 니까?
  • 여러 프로젝트 간 통합 (1) 크로스 플랫폼 (2) 다 중 언어 (3) 다 중 프로젝트
  • 시스템 간 모듈 의 결합 도 를 낮 추고 디 결합 (1) 소프트웨어 확장 성
  • 시스템 전후 단 격 리 (1) 전후 단 격 리, 높 은 안전 구역 차단
  • 좋은 웹페이지 즐겨찾기