ActiveMQ 배치 및 수신 메시지 발송

7732 단어 자바 기술 자료
ActiveMQ 배치 및 수신 메시지 발송
하나           다운로드 하 다.
다운로드 주소:http://activemq.apache.org/내 가 사용 하 는 버 전 은 현재 최신 5.8.0 이다.
다운로드 버 전 은 윈도 와 리 눅 스 두 가지 버 전이 있 으 며 모두 32 비트 와 64 비트 로 나 뉜 다.필요 에 따라 다운 로드 를 선택 하 세 요.
둘째,           설치 하 다.
windows 32 비트 버 전 (apache - activemq - 5.8.0 - bin. zip) 을 다운로드 한 후 설치 해 야 할 디 렉 터 리 에 직접 압축 을 풀 거나 현재 디 렉 터 리 에 직접 압축 을 풀 어도 됩 니 다. 압축 을 풀 고 설치 도 완료 되 었 습 니 다.
압축 해제 후 디 렉 터 리 는 위의 그림 과 같이 예제 와 문서, 그리고 모든 jar 패키지 가 포함 되 어 있 습 니 다.
 
셋째,           운행 하 다.
bin 디 렉 터 리 (apache - activemq - 5.8.0\bin) 에 들 어가 activemq. bat 를 두 번 누 르 면 실 행 됩 니 다. 캡 처 는 다음 과 같 습 니 다.
이 때 는 ActiveMQ 가 이미 실행 되 고 있 음 을 나타 낸다. 물론 정상 적 인 생산 환경 에서 서비스 로 배경 에서 실행 되 고 시스템 이 시 작 됨 에 따라 시작 할 수 있다.
넷,           테스트
ActiveMQ 자체 관리 시스템 을 가지 고 방문 하 였 습 니 다.http://localhost:8161/admin/사용자 이름과 비밀 번 호 를 입력 해 야 하 는 페이지 가 다음 과 같 습 니 다.
기본 사용자 이름과 비밀 번 호 는 admin 이 고 들 어가 면 주 인터페이스 입 니 다.
이 인터페이스 에서 우 리 는 대기 열 과 다른 기능 을 관리 할 수 있 습 니 다. 아래 의 계속 을 위해 우 리 는 여기에서 Queue 와 Topic 를 만 들 수 있 습 니 다.
디 렉 터 리 에 있 는 Queues 를 누 르 면 Queue 생 성 페이지 에 들 어가 서 Queue 이름 을 입력 하고 Create 를 누 르 면 G2Queue 의 queue 대기 열 이 생 성 됩 니 다.
이렇게 수 동 으로 만 들 지 않 아 도 됩 니 다. 송신 단 에 Queue 나 Topic 이름 을 지정 하면 위 에 있 는 choice. queue 와 First Queue 가 모두 제 테스트 프로그램 일 때 프로그램 에서 지정 한 Queue 이름 이 자동 으로 생 성 됩 니 다.
같은 방식 으로 Topic 을 만 듭 니 다. 다음 과 같 습 니 다.
다섯,           소식 을 보내다
새 프로젝트 를 만 듭 니 다. 웹 프로젝트 이름 은 ActiveMQ 입 니 다. ActiveMQ 의 jar 패 키 지 를 도입 합 니 다. 전체 프로젝트 구 조 는 다음 과 같 습 니 다.
 
이 코드 는 인터넷 에서 직접 copy 입 니 다. 다만 약간 수정 되 었 을 뿐 입 니 다.
import java.util.Random;
 
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.ActiveMQConnectionFactory;
 
public class SendMessage {
    private static final String url = "tcp://localhost:61616";
    private static final String QUEUE_NAME = "G2Queue";
 
    public void sendMessage() throwsJMSException {
       // JMS     JMSProvider    
       Connection connection = null;
       try {
           //     ,JMS       
           //   ConnectionFactory    ,    ActiveMq   jar
           ConnectionFactory connectionFactory = newActiveMQConnectionFactory(url);
           connection = (Connection)connectionFactory.createConnection();
           //     
           connection.start();
           //Session:          
           //   session
           Session session = (Session) connection.createSession(false,
                  Session.AUTO_ACKNOWLEDGE);
           //       ,         
           Destination destination = session.createQueue(QUEUE_NAME);
           //MessageProducer:     (   )
           //        
           MessageProducer producer =session.createProducer(destination);
           //        
           //DeliveryMode.NON_PERSISTENT:    
           //DeliveryMode.PERSISTENT:   
           producer.setDeliveryMode(DeliveryMode.PERSISTENT);
          
           String msg = "";
           int i = 0;
        do {
            msg = " "+i + "      :"+new Random();
                TextMessagemessage = session.createTextMessage(msg);
                Thread.sleep(1000);
                //          
               producer.send(message);
                System.out.println("    :" +msg);
                i++;
        } while (i<1000);
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
 
    public static void main(String[] args) {
       SendMessage sndMsg = newSendMessage();
       try {
           sndMsg.sendMessage();
       } catch (Exception ex) {
           System.out.println(ex.toString());
       }
    }
}

실행 결 과 는 다음 과 같 습 니 다.
여섯,           소식 을 받다
package cn.g2room.mq.test;
 
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
 
import org.apache.activemq.ActiveMQConnectionFactory;
 
/**
 *      
 *
 * @createTime:Apr 7, 2013 5:11:11 PM
 * @author:나비
 * @version:0.1
 *@lastVersion: 0.1
 * @updateTime:
 *@updateAuthor: 나비
 * @changesSum:
 *
 */
public class ReceiveMessage {
         privatestatic final String url = "tcp://localhost:61616";
         privatestatic final String QUEUE_NAME = "G2Queue";
 
         publicvoid receiveMessage() {
                   Connectionconnection = null;
                   try{
                            try{
                                     ConnectionFactoryconnectionFactory = new ActiveMQConnectionFactory(
                                                        url);
                                     connection= connectionFactory.createConnection();
                            }catch (Exception e) {
                                     System.out.println(e.toString());
                            }
                            connection.start();
                            Sessionsession = connection.createSession(false,
                                               Session.AUTO_ACKNOWLEDGE);
                            Destinationdestination = session.createQueue(QUEUE_NAME);
                            //     ,      
                            MessageConsumerconsumer = session.createConsumer(destination);
                           
                            consumeMessagesAndClose(connection,session, consumer);
                   }catch (Exception e) {
                            System.out.println(e.toString());
                   }
         }
         /**
          *        ,        close ,    
          *
          * @param connection   JMS     JMSProvider    
          * @param session                             
          * @param consumer                    
          * @throws JMSException
          * @auther   
          * Apr 8, 2013 10:31:55 AM
          */
         protectedvoid consumeMessagesAndClose(Connection connection,
                            Sessionsession, MessageConsumer consumer) throws JMSException {
                   do{
                            Messagemessage = consumer.receive(1000);
                            if("close".equals(message)){
                                     consumer.close();
                                     session.close();
                                     connection.close();
                            }
                            if(message != null) {
                                     onMessage(message);
                            }
                   }while (true);
                  
         }
 
         publicvoid onMessage(Message message) {
                   try{
                            if(message instanceof TextMessage) {
                                     TextMessagetxtMsg = (TextMessage) message;
                                     Stringmsg = txtMsg.getText();
                                     System.out.println("Received:" + msg);
                            }
                   }catch (Exception e) {
                            e.printStackTrace();
                   }
 
         }
 
         publicstatic void main(String args[]) {
                   ReceiveMessagerm = new ReceiveMessage();
                   rm.receiveMessage();
         }
}

실행 결 과 는 다음 과 같 습 니 다.

좋은 웹페이지 즐겨찾기