mq小程序二

来源:互联网 发布:身份证sql判断 编辑:程序博客网 时间:2024/04/29 23:51
public class Sender {    public static void main(String[] args)throws Exception{        //第一步建立connection工厂对象 需要填入用户名 密码,以及连接地址,默认端口为 tcp://0.0.0.0:61616        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 session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);//使用事务的方式进行消息发送        Session session = connection.createSession(Boolean.FALSE,Session.CLIENT_ACKNOWLEDGE);//使用client端签收的方式        //第四步 通过session创建Destination对象,是客户用来指定生产目标和消费来源        Destination destination = session.createQueue("queue1");        //第五步 我们通过session对象创建消息发送或接受对象        MessageProducer messageProducer = session.createProducer(null);        //第六步 设置持久化 非持久化特性//        messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);        //第七步 最后使用JMS提供的TextMessage        for(int i=0;i<5;i++){            TextMessage textMessage = session.createTextMessage();            textMessage.setText("我是消息内容!id为"+i);            //第一个参数 目的地            //第二个参数 消息            //第三个参数 是否持久化            //第四个参数 优先级 0-4普通 5-9加急            //第五个参数 消息在mq上的存放有效期            messageProducer.send(destination, textMessage,DeliveryMode.NON_PERSISTENT,i,1000*60*2);            System.out.println("生产者生产消息");        }        //session.commit();//使用事务提交        if(connection != null){            connection.close();        }    }

}

public class Receiver {    public static void main(String[] args)throws Exception{        //第一步建立connection工厂对象 需要填入用户名 密码,以及连接地址,默认端口为 tcp://0.0.0.0:61616        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 session = connection.createSession(Boolean.FALSE,Session.CLIENT_ACKNOWLEDGE);        //第四步 通过session创建Destination对象,是客户用来指定生产目标和消费来源        Destination destination = session.createQueue("queue1");        //第五步 我们通过session对象创建消息发送或接受对象        MessageConsumer messageConsumer = session.createConsumer(destination);        while (true){            TextMessage mapMessage =(TextMessage) messageConsumer.receive();            //手工去签收消息,另起一个线程去通知mq服务缺确认            mapMessage.acknowledge();            if(mapMessage == null) break;            System.out.println(mapMessage.getText());        }        connection.close();    }}


原创粉丝点击