2022如何使用ActiveMQ测试小程序

 所属分类:php教程

 浏览:76次-  评论: 0次-  更新时间:2022-10-08
描述:更多教程资料进入php教程获得。 介绍 Active MQ是个消息队列管理器,用于通讯的中间件。现在由我来给大家介绍一下如何使用ActiveMQ测试小...
更多教程资料进入php教程获得。

介绍 Active MQ是个消息队列管理器,用于通讯的中间件。现在由我来给大家介绍一下如何使用ActiveMQ测试小程序

首先需要下载ActiveMQ,并修改内存

修改bin目录下activemq.bat
在最后一行加入

set ACTIVEMQ_OPTS=-Xms1G -Xmx1G
登录后复制

保存后执行该bat文件
新建maven项目
pom文件中加入依赖


        
            org.apache.activemq
            activemq-all
            
            5.9.0
        
        
        
            org.apache.activemq
            activemq-broker
            5.10.0
        
        
        
            org.apache.activemq
            activemq-client
            5.14.0
        
    
登录后复制

发送端程序

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--active

以上就是如何使用ActiveMQ测试小程序的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: activeMQ,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!