ActiveMQ 开发者和消费者(Hello World)

写一个简单的Hello world示例 体验一下开发者和消费者

Sender/Receiver

使用Maven导入ActiveMQ  根据你下载的版本去导

<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-all -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.15.8</version>
</dependency>

Sender七步骤

第一步:建立ConnectionFactory工厂对象,需要填写用户名,密码,以及要连接的地址,均使用默认即可,默认端口为“tcp://localhost:61616”

第二步:通过ConnectionFactory工厂对象创建一个connection连接,并且调用connection的start的方法开启连接,connection默认是关闭的

第三步:通过connection对象创建session会话(上下文环境对象),用于接受消息,参数配置1为是否启用是事务,参数配置2为签收模式,一般我们设置自动签收

第四步:通过session创建destination对象,指的是一个客户端用来制定生产消息目标和消费目标和消费消息来源的对象,在PTP模式中,destination被称作queue即队列:在pub/sub模式,destination被称作Topic即主题。在程序中可以使用多个queue和Topic

第五步:我们需要通过session对象创建消息的发送和接受对象(生产者和消费者)MessageProducer/MessageConsumer

第六步:我们可以使用MessageProducer的setDeliberatelyMode方法为其设置持久化特性和非持久化特性(DeliveryMode)

第七步:最后我们使用JMS规范的TextMessage形式创建数据(通过session对象),并用MessageProducer的send方法发送数据。同理客户端使用receive方法进行接收数据。最后不要忘记关闭connection连接。

 public static void main(String[] args) throws JMSException, InterruptedException {
        //第一步:建立ConnectionFactory工厂对象,需要填写用户名,密码,以及要连接的地址,均使用默认即可,默认端口为“tcp://localhost:61616”
        ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(
                "hhh","hhh",
//                ActiveMQConnectionFactory.DEFAULT_USER,//填写的用户名参数
//                ActiveMQConnectionFactory.DEFAULT_PASSWORD,//填写的用户密码
                "tcp://localhost:61616"//要连接的地址
        );
        //第二步:通过ConnectionFactory工厂对象创建一个connection连接,并且调用connection的start的方法开启连接,connection默认是关闭的
        Connection connection=connectionFactory.createConnection();
        connection.start();

        //第三步:通过connection对象创建session会话(上下文环境对象),用于接受消息,参数配置1为是否启用是事务,参数配置2为签收模式,一般我们设置自动签收
        //开启事务的话第一个参数是true 不开启就是false
        //签收模式 AUTO_ACKNOWLEDGE默认的自动签收 CLIENT_ACKNOWLEDGE客户承认 DUPS_OK_ACKNOWLEDGE dup承认 SESSION_TRANSACTED 会话事务
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);

        //第四步:通过session创建destination对象,指的是一个客户端用来制定生产消息目标和消费目标和消费消息来源的对象,在PTP模式中,destination被称作queue即队列:在pub/sub模式,destination被称作Topic即主题。在程序中可以使用多个queue和Topic
        Destination destination=session.createQueue("first");

        //第五步:我们需要通过session对象创建消息的发送和接受对象(生产者和消费者)MessageProducer/MessageConsumer
        MessageProducer producer = session.createProducer(null);

        //第六步:我们可以使用MessageProducer的setDeliberatelyMode方法为其设置持久化特性和非持久化特性(DeliveryMode)
//        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

        //第七步:最后我们使用JMS规范的TextMessage形式创建数据(通过session对象),并用MessageProducer的send方法发送数据。同理客户端使用receive方法进行接收数据。
        //最后不要忘记关闭connection连接。

        for (int i=0;i<100;i++){
            TextMessage textMessage = session.createTextMessage("我是消息内容" + i);
            //第一个参数 目标地址
            //第二个参数 具体的数据信息
            //第三个参数 传送数据的模式
            //第四个参数 优先级
            //第五个参数 消息的过期时间
            producer.send(destination,textMessage);
            TimeUnit.SECONDS.sleep(1);
        }

//        for (int i=0;i<5;i++){
//            MapMessage map = session.createMapMessage();
//            map.setString("name","张三");
//            map.setString("age","20");
//            map.setString("address","北京");
//            producer.send(destination,map,DeliveryMode.NON_PERSISTENT,0,1000L*1000);
//        }

        //最后关闭connection连接
        if(connection!=null){
            connection.close();
        }


    }

Receiver五步骤

第一步:建立ConnectionFactory工厂对象,需要填写用户名,密码,以及要连接的地址,均使用默认即可,默认端口为“tcp://localhost:61616”

第二步:通过ConnectionFactory工厂对象创建一个connection连接,并且调用connection的start的方法开启连接,connection默认是关闭的

第三步:通过connection对象创建session会话(上下文环境对象),用于接受消息,参数配置1为是否启用是事务,参数配置2为签收模式,一般我们设置自动签收

第四步:通过session创建destination对象,指的是一个客户端用来制定生产消息目标和消费目标和消费消息来源的对象,在PTP模式中,destination被称作queue即队列:在pub/sub模式,destination被称作Topic即主题。在程序中可以使用多个queue和Topic

第五步:通过session创建MessageConsumer

 

public static void main(String[] args) throws JMSException {
        //第一步:建立ConnectionFactory工厂对象,需要填写用户名,密码,以及要连接的地址,均使用默认即可,默认端口为“tcp://localhost:61616”
        ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(
                "hhh","hhh",
//                ActiveMQConnectionFactory.DEFAULT_USER,//填写的用户名参数
//                ActiveMQConnectionFactory.DEFAULT_PASSWORD,//填写的用户密码
                "tcp://localhost:61616"//要连接的地址
        );
        //第二步:通过ConnectionFactory工厂对象创建一个connection连接,并且调用connection的start的方法开启连接,connection默认是关闭的
        Connection connection=connectionFactory.createConnection();
        connection.start();

        //第三步:通过connection对象创建session会话(上下文环境对象),用于接受消息,参数配置1为是否启用是事务,参数配置2为签收模式,一般我们设置自动签收
        //开启事务的话第一个参数是true 不开启就是false
        //签收模式 AUTO_ACKNOWLEDGE默认的自动签收 CLIENT_ACKNOWLEDGE客户承认 DUPS_OK_ACKNOWLEDGE dup承认 SESSION_TRANSACTED 会话事务
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);

        //第四步:通过session创建destination对象,指的是一个客户端用来制定生产消息目标和消费目标和消费消息来源的对象,在PTP模式中,destination被称作queue即队列:在pub/sub模式,destination被称作Topic即主题。在程序中可以使用多个queue和Topic
        Destination destination=session.createQueue("first");

        //第五步:通过session创建MessageConsumer
        MessageConsumer consumer = session.createConsumer(destination);

        while (true){
            TextMessage message=(TextMessage)consumer.receive();
            System.out.println("消费数据:"+message.getText());
        }
    }

先运行你的生产者,再运行消费者

你可以进入页面查看变化

生产者执行:

 

消费者执行:

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值