文档章节

ActiveMQ学习之增加NIO通讯协议

冥焱
 冥焱
发布于 01/24 14:31
字数 716
阅读 165
收藏 0

一、修改activemq.xml

           1、进入到activemq的安装目录下

            2、进入conf文件夹中

            3、对activemq.xml文件进行编辑

            4、增加NIO协议

 <transportConnector name="nio" uri="nio://0.0.0.0:61618?trace=true"/>

            5、保存并退出

二、启动activemq(正常启动就可以)

三、生产者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * @ProjectName: springbootActiveMQ
 * @Package: cn.**.test
 * @Author: huat
 * @Date: 2020/1/2 17:04
 * @Version: 1.0
 */
public class ActiveMQTest {
    //url路径
    private static final String ACTRIVE_URL="nio://192.168.44.135:61618";
    //队列名称
    private static final String QUEUE_NAME="queue01";
  

    public static void main(String[] args) {
        //1、创建连接工厂
        //如果账号密码没有修改的话,账号密码默认均为admin
        ActiveMQConnectionFactory activeMQConnectionFactory=new ActiveMQConnectionFactory(ACTRIVE_URL);
        //如果账号密码修改的话
        //第一个参数为账号,第二个为密码,第三个为请求的url
        //ActiveMQConnectionFactory activeMQConnectionFactory1=new ActiveMQConnectionFactory("admin","admin",ACTRIVE_URL);
        try {
            //2、通过连接工厂获取连接
            Connection connection = activeMQConnectionFactory.createConnection();
            connection.start();
            //3、创建session会话
            //里面会有两个参数,第一个为事物,第二个是签收
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //4、创建目的地(具体是队列还是主题),这里是创建队列
            Queue queue=session.createQueue(QUEUE_NAME);
           
            //5、创建消息生产者
            MessageProducer messageProducer = session.createProducer(queue);
            //6、通过messageProducer生产三条消息发送到MQ消息队列中
            for (int i=0;i<3;i++){
                //7、创建消息
                TextMessage textMessage = session.createTextMessage("msg----->" + i);//创建一个文本消息
                //8、通过messageProducer发送给mq
                messageProducer.send(textMessage);
            }
            messageProducer.close();
            session.close();
            connection.close();
            System.out.println("消息发送成功");
        } catch (JMSException e) {
            e.printStackTrace();
        }

    }
}

四、消费者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * @ProjectName: springbootActiveMQ
 * @Package: cn.**.test
 * @Author: huat
 * @Date: 2020/1/3 8:47
 * @Version: 1.0
 */
public class ActiveMQConsumer {
    //url路径
    private static final String ACTRIVE_URL="nio://192.168.44.135:61618";
    //队列名称
    private static final String QUEUE_NAME="queue01";

    public static void main(String[] args) {
        //1、创建连接工厂
        //如果账号密码没有修改的话,账号密码默认均为admin
        ActiveMQConnectionFactory activeMQConnectionFactory=new ActiveMQConnectionFactory(ACTRIVE_URL);
        //如果账号密码修改的话
        //第一个参数为账号,第二个为密码,第三个为请求的url
        //ActiveMQConnectionFactory activeMQConnectionFactory1=new ActiveMQConnectionFactory("admin","admin",ACTRIVE_URL);
        try {
            //2、通过连接工厂获取连接
            Connection connection = activeMQConnectionFactory.createConnection();
            connection.start();
            //3、创建session会话
            //里面会有两个参数,第一个为事物,第二个是签收
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //4、这里接受的queue的名称要和发送者的一致
            Queue queue = session.createQueue(QUEUE_NAME);
            //5、创建消费者
            MessageConsumer consumer = session.createConsumer(queue);
            //6、获取消息
            while(true){
                //MessageConsumer 调用的receive方法为同步调用,在消息到达之前一直阻塞线程
                //用什么格式发送,这里就用什么格式接受
                //receive等待消息,不限制时间
                    TextMessage message=(TextMessage)consumer.receive();
                //receive带参数等待消息,限制时间,单位毫秒
                //TextMessage message=(TextMessage)consumer.receive(4000L);

                if(null != message){
                    System.out.println("接受的消息为------>"+message.getText());
                }else{
                    break;
                }
            }
            //7、闭资源
            consumer.close();
            session.close();
            connection.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

 

© 著作权归作者所有

冥焱
粉丝 19
博文 131
码字总数 104348
作品 0
运城
私信 提问
加载中

评论(0)

JMS配置说明-----activeMQ-5.6

1 简介 activeMQ是一个完全支持JMS1.1 和J2EE规范的JMS Provider实现; 尽管规范出台已经是很久的事情了,但JMS在当今的J2EE应用中仍然扮演着特殊的地位; 特性列表 多种语言和协议编写客户端...

次渠龙哥
2018/06/26
0
0
[中间件] 消息处理利器 ActiveMQ 的介绍 & Stomp 协议的使用

随着互联网企业业务量的不断扩大,企业信息网络系统的愈加复杂,性能问题也就越来越凸显出来,串行的业务处理方式显然已经成为主要的瓶颈,我们需要更多异步的并行处理来提高企业信息系统的业...

长平狐
2012/11/19
1.8K
0
ActiveMQ-CPP v3.8.3 发布,C++ 的消息服务

ActiveMQ-CPP v3.8.3 发布了,该版本主要是 bug 修复,包括 ConnectionAudit 类的一些线程问题;增强了 SSL 代码允许在包含多个 CN 值的证书中查找域名。详细介绍请看 ChangeLog。 CMS (全称...

红薯
2014/07/19
2.3K
0
ActiveMQ入门,ActiveMQ与RocketMQ的对比

ActiveMQ入门 前面的文章已经写过MQ的相关概念,这里不再赘述。 1.1 ActiveMQ是什么 ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。 1.2 ActiveMQ的特点 ...

LinkedBear
2018/08/04
700
0
(一)ActiveMQ :windows 环境搭建及配置

一、下载ActiveMQ 二、ActiveMQ目录 三、ActiveMQ启动

安于此生ㄨ
2018/09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

天津哪里可以开建材发票-腾讯新闻网

天津哪里可以开建材发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,...

16534163966
24分钟前
25
0
北京哪里可以开海关缴款书发票-腾讯新闻网

北京哪里可以开海关缴款书发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug B...

15983684413
25分钟前
25
0
北京哪里可以开粮油发票-腾讯新闻网

北京哪里可以开粮油发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,...

16534163727
26分钟前
31
0
北京哪里可以开文化传播发票-腾讯新闻网

北京哪里可以开文化传播发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

17035270196
28分钟前
33
0
北京哪里可以开电线电缆发票-腾讯新闻网

北京哪里可以开电线电缆发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

15232501104
28分钟前
37
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部