zoukankan      html  css  js  c++  java
  • ActiveMQ API编程方式

    生产者:

    public class Producer {
        //默认连接用户名
        public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
        //默认连接密码
        public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
        //默认连接地址
        public static final String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;
    
        public static void main(String[] args) {
            ConnectionFactory connectionFactory = null;     //连接工厂
            Connection connection = null;       //连接
            Session session = null;             //会话
            Destination destination = null;     //消息目的地
            MessageProducer messageProducer;    //消息生产者
    
            //实例化连接工厂
            connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKERURL);
            try {
                //通过连接工作获取连接
                connection = connectionFactory.createConnection();
                //启动连接
                connection.start();
                //创建会话,第一个参数表示是否使用事务,第二个参数表示消息的确认模式
                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                //创建一个名为DemoActiveMQ消息队列
                destination = session.createTopic("DemoActiveMQ");
                //创建消息生产者
                messageProducer = session.createProducer(destination);
    
                //发送消息
                for (int i = 0; i < 3; i++) {
                    String msg = "发送第" + i + "条消息";
                    TextMessage textMessage = session.createTextMessage(msg);
                    messageProducer.send(textMessage);
                }
            } catch (JMSException e) {
                e.printStackTrace();
            } finally {
                if (connection != null) {
                    try {
                        connection.close();
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    

    消费者同步接收消息

    public class Consumer {
    
        //默认连接用户名
        public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
        //默认连接密码
        public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
        //默认连接地址
        public static final String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;
    
        public static void main(String[] args) {
            ConnectionFactory connectionFactory = null;     //连接工厂
            Connection connection = null;       //连接
            Session session = null;             //会话
            Destination destination = null;     //消息目的地
            MessageConsumer messageConsumer;    //消息消费者
    
            //实例化连接工厂
            connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKERURL);
            try {
                //通过连接工作获取连接
                connection = connectionFactory.createConnection();
                //启动连接
                connection.start();
                //创建会话,第一个参数表示是否使用事务,第二个参数表示消息的确认模式
                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                //创建一个名为DemoActiveMQ消息队列
                destination = session.createTopic("DemoActiveMQ");
                //创建消息消费者
                messageConsumer = session.createConsumer(destination);
    
                //同步接受消息
                Message message = null;
                while ((message = messageConsumer.receive()) != null){
                    TextMessage textMessage = (TextMessage) message;
                    System.out.println(textMessage.getText());
                }
            } catch (JMSException e) {
                e.printStackTrace();
            } finally {
                if(connection != null){
                    try {
                        connection.close();
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            }
    
    
        }
    }
    
    

    消费者异步接收消息

    public class Consumer {
    
        //默认连接用户名
        public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
        //默认连接密码
        public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
        //默认连接地址
        public static final String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;
    
        public static void main(String[] args) {
            ConnectionFactory connectionFactory = null;     //连接工厂
            Connection connection = null;       //连接
            Session session = null;             //会话
            Destination destination = null;     //消息目的地
            MessageConsumer messageConsumer;    //消息消费者
    
            //实例化连接工厂
            connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKERURL);
            try {
                //通过连接工作获取连接
                connection = connectionFactory.createConnection();
                //启动连接
                connection.start();
                //创建会话,第一个参数表示是否使用事务,第二个参数表示消息的确认模式
                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                //创建一个名为DemoActiveMQ消息队列
                destination = session.createTopic("DemoActiveMQ");
                //创建消息消费者
                messageConsumer = session.createConsumer(destination);
    
                //异步接收消息示例
                messageConsumer.setMessageListener(new MessageListener(){
                	@Override
                	public void onMessage(Message message){
                	TextMessage textMessage = (TextMessage) message;      
                	 System.out.println(textMessage.getText());	 
                });
        }
    }
    
    
  • 相关阅读:
    更改hadoop native库文件后datanode故障
    解决 Unable to load native-hadoop library for your platform
    Windows 下Hadoop的环境变量配置
    在用VMware虚拟机的时候,有时会发现打开虚拟机时提示“该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。配置文件: D:win10x64Windows 10 x64.vmx。”这是由于虚拟机未正常关闭引起的,下面看看解决办法
    Linux中chown和chmod的区别和用法(转)
    linux jps 命令
    org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService: mapreduce_shuffle do
    静默安装oracle 11g,环境预检查时报错,SEVERE: [FATAL] PRVF-0002 : 无法检索本地节点名
    windows,cmd中,如何切换到磁盘的根目录下
    windows,cmd中查看当前目录下的文件及文件夹
  • 原文地址:https://www.cnblogs.com/InternetJava/p/15731287.html
Copyright © 2011-2022 走看看