>  기사  >  위챗 애플릿  >  ActiveMQ를 사용하여 애플릿을 테스트하는 방법

ActiveMQ를 사용하여 애플릿을 테스트하는 방법

坏嘻嘻
坏嘻嘻원래의
2018-09-14 15:51:112659검색

소개 Active MQ는 메시지 큐 관리자, 통신에 사용되는 미들웨어입니다. 이제 ActiveMQ를 사용하여 애플릿을 테스트하는 방법을 소개하겠습니다.

먼저 ActiveMQ를 다운로드하고 메모리를 수정해야 합니다.

bin 디렉터리에서 activemq.bat를 수정합니다.
마지막 줄에

set ACTIVEMQ_OPTS=-Xms1G -Xmx1G
를 추가합니다.

저장 후 bat 파일을 실행합니다.
새 Maven 프로젝트 생성
종속성 추가 pom 파일

<dependencies>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <!--我的mq版本为5.9.0-->
            <version>5.9.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-broker -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
            <version>5.10.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-client -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
            <version>5.14.0</version>
        </dependency>
    </dependencies>

보내기 종료 프로그램

import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.
ActiveMQConnectionFactory;import javax.jms.*;public class Send {
   // private static final int SEND_NUMBER = 10;
    public static void main(String[] args){        //ConnectionFactory:连接工厂,JMS用它创建连接
        ConnectionFactory connectionFactory;        //Connection:JMS客户端到JMS Provider的连接
        Connection connection = null;        //Session:一个发送或接收消息的线程
        Session session;        //Destination:消息的目的地;消息的接收者
        Destination destination;        //MessageProducer:消息发送者
        MessageProducer producer;        //TextMessage message;
        //构造ConnectionFactory实例对象,此处采用ActiveMQ的实现jar
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD,                "tcp://localhost:61616"
        );        try{            //构造从工厂得到连接对象
            connection = connectionFactory.createConnection();        
                //启动
            connection.start();         
              //获取操作连接
            session = connection.createSession(Boolean.TRUE,
                    Session.AUTO_ACKNOWLEDGE);          
               //获取session注意参数值test是一个服务器的queue,须在ActiveMQ的console配置
            destination = session.createQueue("test");           
             //得到发送者
            producer = session.createProducer(destination);          
              //设置不持久化,实际情况请根据项目决定
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);      
                  //构造消息,这里写死了,项目就是参数,或者方法获取
            sendMessage(session,producer);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally {            try {                if(null != connection)
                    connection.close();
            }catch (Throwable ignore){}
        }
    }    public static void sendMessage(Session session, MessageProducer producer) throws Exception{   
         for (int i = 1; i <= 100000; i++){
            TextMessage message = session.createTextMessage("今日天气asda" + i);//发送消息到目的地
            System.out.println("发送:"+message.getText());
            producer.send(message);
        }
    }
}

수신 종료 프로그램

import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.
ActiveMQConnectionFactory;import javax.jms.*;public class revice {
    public static void main(String[] args) {
        ConnectionFactory connectionFactory;
        Connection connection = null;
        Session session;
        Destination destination;        //接收者-消费者
        MessageConsumer messageConsumer;
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");   
                     try{
            connection = connectionFactory.createConnection();
            connection.start();
            session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
            destination = session.createQueue("test");
            messageConsumer = session.createConsumer(destination);            while(true){
                TextMessage message = (TextMessage) messageConsumer.receive(1000);               
                 if(null != message){
                    System.out.println("收到:"+message.getText());
                }else{                    break;
                }

                message.acknowledge();
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }finally{            try{                if(null != connection){
                    connection.close();
                }
            }catch(Throwable ig){

            }
        }
    }
}

관련 권장 사항:

1ActiveMQ는 2ActiveMQC#Client를 사용하여 3ActiveMQC++Client를 구현하여

Yii 학습(5)--Active Record를 사용합니다. 협회, yii--활성

위 내용은 ActiveMQ를 사용하여 애플릿을 테스트하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.