简单的activemq,生产者和消费者代码

生产者:

public class Sender {
    private static final int SEND_NUMBER=5;

    public static void main(String[] args) {
        //ConnectionFactory:连接工厂。JMS用它创建连接
        ConnectionFactory connectionFactory;
        //Connection:JMS 客户端到JMS Privider的连接
        Connection connection=null;
        //Session :一个发送或接收消息的线程
        Session session;
        //Destination :消息的目的地,消息发送给谁
        Destination destination;
        //消息的发送者
        MessageProducer producer;
        //构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
        connectionFactory=new ActiveMQConnectionFactory(
                ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,
                "tcp://localhost:61616"
        );
        //从构造工厂获取链接对象
        try {
            connection=connectionFactory.createConnection();
            //启动
            connection.start();
            session=connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
            destination=session.createQueue("FirstQueue");
         //   destination=session.createTopic("FirstTopic");
            producer=session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);  //如果不需要持久化设置为DeliveryMode.NON_PERSISTENT

            sendMessage(session, producer);
            session.commit();

        } catch (JMSException e) {
            e.printStackTrace();
        }finally {
            if(null!=connection){
                try {
                    connection.close();
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void sendMessage(Session session,MessageProducer producer) throws JMSException {

        for (int i = 0; i <SEND_NUMBER ; i++) {
            TextMessage message=session.createTextMessage("active发送的消息"+i);
            System.out.println("active发送的消息"+i);
            producer.send(message);
        }
    }
}

消费者:

public class Receiver {
    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory;
        Connection connection=null;
        Session session;
        Destination destination;
        MessageConsumer consumer;
        connectionFactory=new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,"tcp://localhost:61616");
        try {
            connection=connectionFactory.createConnection();
            connection.start();
            session=connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);
            destination=session.createQueue("FirstQueue");
           // destination=session.createTopic("FirstTopic");
            consumer=session.createConsumer(destination);
            while (true){
                TextMessage message=(TextMessage)consumer.receive(0);
                if(null!=message){
                    System.out.println("收到的消息"+message.getText());
                }else{
                    break;
                }
            }

        } catch (JMSException e) {
            e.printStackTrace();
        }finally {
          if (null!=connection){
              connection.close();
          }
        }
    }
}



猜你喜欢

转载自blog.csdn.net/wylfll/article/details/76178651
今日推荐