idea下的activemq的简单demo

3 篇文章 0 订阅
2 篇文章 0 订阅

idea下的activemq的简单demo

  1. 建立一个简单的maven工程

  2. 配置pom.xml,导入activemq相关依赖

pom.xml

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.14.5</version>
        </dependency>
  1. 创建生产者和消费者

生产者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class Producer {

    public static void main(String [] args){
        ActiveMQConnectionFactory connectionFactory;
        Connection conn = null;
        Session session=null;

        try{
            //创建连接工厂
            connectionFactory=new ActiveMQConnectionFactory("admin","admin","tcp://192.168.187.128:61616");
            //创建连接对象
            conn=connectionFactory.createConnection();
            conn.start();
            //创建会话
            //第一个参数:是否支持事务,如果为true,则会忽略第二个参数,被jms服务器设置为SESSION_TRANSACTED
            //第一个参数为false时,第二个参数的值可为Seesion.AUTO_ACKNOWLEDGE,Session.CLIENT_ACKNOWLEDGE,Session.DUPS_OK_ACKNOWLEDGE
            //AUTO_ACKNOWLEDGE  为自动确认,客户端发送和接收消息不需要做额外的工作
            //CLIENT_ACKNOWLEDGE为客户端确认,客户端接收到消息后,必须调用javax.jms,Messagede1acknow方法
            //DUPS_OK_ACKNOWLEDGE允许副本的确认模式,一旦接收方应用程序的方法调用从处理消息处返回,会话对象就会确认
            session=conn.createSession(false,Session.AUTO_ACKNOWLEDGE);
            //创建连接目标
            Destination destination = session.createQueue("queue1");
            //创建生产者
            MessageProducer producer = session.createProducer(destination);
            //持久化配置
            //NON_PERSISTENT 当activemq关闭的时候,队列数据将会被清空
            //PERSISTENT 当activemq关闭的时候,队列数据将会保存
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            //发送消息
            String text = "Hello woprld1";
            TextMessage message = session.createTextMessage(text);
            producer.send(message);
            conn.close();
        }catch ( JMSException e){
            e.printStackTrace();
        }
    }


}

消费者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;


public class Comsumer {
    public static void main(String [] args){

        ActiveMQConnectionFactory connectionFactory = null;
        Connection conn = null;
        Session session = null;
        MessageConsumer consumer = null;

        try{
            //创建连接工厂
            connectionFactory=new ActiveMQConnectionFactory(
                    "admin",
                    "admin",
                    "tcp://192.168.187.128:61616"
                    );
            //创建连接对象
            conn = connectionFactory.createConnection(
                    "admin",
                    "admin");
            conn.start();
            //创建会话
            session=conn.createSession(false,Session.AUTO_ACKNOWLEDGE);
            //创建点对点接收的目标
            Destination destination =session.createQueue("queue1");

            //创建订阅的目标
            //Destination destination = session.createTopic("topic1");

            //创建消费对象
            consumer = session.createConsumer(destination);
            //接收消息
            Message message=consumer.receive(1000);
            if (message instanceof TextMessage){
                System.out.println("收到文本信息"+((TextMessage) message).getText());
            }else{
                System.out.println(message);
            }
            conn.close();
        }catch (JMSException e){
            e.printStackTrace();
        }


    }
}



activemq管理页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值