ActiveMQ(二):ActiveMQ的简单入门

一、ActiveMQ简介

ActiveMQ是Apache出品、最流行的,能力强劲的开源的消息项目。

二、ActiveMQ的使用

在学习阶段,我们先使用windows版本,解压压缩包后,目录如下:
AvtiveMQ压缩包目录
打开bin目录,运行批处理文件
运行的批处理文件
最后运行出现这个的时候就代表启动成功
运行后的日志

启动成功后,可以登录控制台,用户名和密码默认都是admin
登录控制台

这个端口号我们是可以修改的
修改的位置是在jetty.xml文件上
也就是下面的这部分:

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
             <!-- the default port number for the web console -->
        <property name="host" value="0.0.0.0"/>
        <property name="port" value="8161"/>
    </bean>

而账号修改是在这里修改
账号修改的文件

三、ActiveMQ的Hello world案例

新建一个java-project项目,导入jar包:

导入activmq-all-5.11.1.jar包
上面新建的sender.java类是消息发送者,内容如下:

package test.mq.helloworld;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {

    public static void main(String[] agrs) throws Exception{

        //第一步:建立ConnectionFactory工厂对象
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,"tcp://localhost:61616");

        //第二步:通过ConnectionFactory工厂对象我们创建一个Connection对象
        Connection connection = connectionFactory.createConnection();
        connection.start();

        //第三步:通过connection对象创建Session会话,第一个参数为是否开启事务,第二个参数为签收模式,一般设置为自动签收
        Session session = connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);

        //第四步:通过Session创建Destination对象,queue1可看作是放入队列的消息名称,可以自定义
        Destination desiDestination = session.createQueue("queue1");

        //第五步:通过session创建消息的生产者或消费者,下面是创建生产者
        MessageProducer messageProducer = session.createProducer(desiDestination);

        //第六步:使用MessageProducer的set方法为其设置持久化特性和非持久化特性,后面再详细介绍
        messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//这里先设置为非持久化

        //第七步:通过JMS规范的TextMessage形式创建数据(通过session对象),并用MessageProducer的send方法发送数据
        for(int i =0; i<5;i++){
            TextMessage textMessage =  session.createTextMessage("这是消息内容,id为"+i);
            messageProducer.send(textMessage);
        }

        if(connection!=null){
            connection.close();
        }

    }

}

上面的tcp://localhost:61616是可以配置的

发送消息的uri

运行java代码后,这时候到控制台就会发现queue队列里面有5个消息
管理后台有消息队列了
而消息的消费者则跟生产者有点类型,下面是消息消费者的简单demo

package test.mq.helloworld;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver {

    public static void main(String[] agrs) throws Exception{

        //第一步:建立ConnectionFactory工厂对象
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,"tcp://localhost:61616");

        //第二步:通过ConnectionFactory工厂对象我们创建一个Connection对象
        Connection connection = connectionFactory.createConnection();
        connection.start();

        //第三步:通过connection对象创建Session会话,第一个参数为是否开启事务,第二个参数为签收模式,一般设置为自动签收
        Session session = connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);

        //第四步:通过Session创建Destination对象,queue1可看作是放入队列的消息名称,可以自定义
        Destination desiDestination = session.createQueue("queue1");

        //第五步:通过session创建消息的生产者或消费者,下面是创建消费者
        MessageConsumer messageConsumer = session.createConsumer(desiDestination);

        while(true){
            TextMessage msg = (TextMessage) messageConsumer.receive();
            if(msg==null){
                break;
            }
            System.out.println("收到的内容为"+msg);
        }

        if(connection!=null){
            connection.close();
        }

    }

}

这时候每当生产者发送消息,消费者都会及时地接收到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值