activeMq 浅析

1、JMS

这里先简单说下JMS。 JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接口JDBC

2、activeMq

因为 ActiveMQ 是完整支持 JMS 1.1 的,所以从 Java 使用者的角度其基本概念与 JMS 1.1 规范是一致的。

1、消息传送方式

1.点对点
一条消息只能被一个消费者使用

2.发布订阅
发布-订阅模型在消息的一对多广播时采用。

2、消息接收方式

在JMS中,消息的接收可以使用以下两种方式:
同步
  使用同步方式接收消息的话,消息订阅者调用receive()方法。在receive()中,消息未到达或在到达指定时间之前,方法会阻塞,直到消息可用。
异步
  使用异步方式接收消息的话,消息订阅者需注册一个消息监听者,类似于事件监听器,只要消息到达,JMS服务提供者会通过调用监听器的onMessage()递送消息。

3、相关代码(producer consumer)

1、consumer

        //这里是点对点模式
        Connection connection = Producer.getConnection();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        final Queue destination = session.createQueue("test_queue");
        session.createConsumer(destination).setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                System.out.println("=============");
            }
        });

2、producer

   //第一个参数是否开启事务 true开启 ,false不开启事务,如果开启记得手动提交
        //参数二,表示的是签收模式,一般使用的有自动签收和客户端自己确认签收
        Session session = getConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);

        Queue queue  = session.createQueue("test_queue");
        //为队列创建消息生产者
        MessageProducer producer =  session.createProducer(queue);

        //TextMessage message = session.createTextMessage("aaaaaaaaa");
        ActiveMQTextMessage message=new ActiveMQTextMessage();

        for(int i=0;i<10;i++) {
            message.setText("hahahahha");
            System.out.println("------------------------------------"+i);
            producer.send(message);
            Thread.sleep(5000);
        }

参考资料:https://www.cnblogs.com/chenpi/p/5559349.html

你可能感兴趣的:(activeMq 浅析)