RabbitMQ中HelloWorld模型实例

        //创建MQ连接工厂对象
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置连接RabbitMQ主机
        connectionFactory.setHost("192.168.153.138");
        //设置端口号
        connectionFactory.setPort(5672);
        //设置连接哪个虚拟主机
        connectionFactory.setVirtualHost("/ems");
        //设置访问虚拟主机用户名密码
        connectionFactory.setUsername("ems");
        connectionFactory.setPassword("123");

        //获取连接对象
        Connection connection = connectionFactory.newConnection();
        //获取连接中通道
        Channel channel = connection.createChannel();
        //通道绑定对应的消息队列
        //参数1:队列名称 如果队列不存在自动创建
        //参数2:用来定义队列是否要持久化 true 持久化   false 不持久化
        //参数3:是否独占队列 true 独占   false 不独占
        //参数4:是否在消费后自动删除队列 true 自动删除 false 不自动删除
        //参数5:额外参数
        channel.queueDeclare("hello", false, false, false, null);
        //参数1:交换机
        //参数2:队列名称
        //参数3:传递消息额外设置
        //参数4:消息具体内容
        channel.basicPublish("", "hello", null, "hello rabbitmq".getBytes());

        channel.close();
        connection.close();

消费者消费

        //创建MQ连接工厂对象
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置连接RabbitMQ主机
        connectionFactory.setHost("192.168.153.138");
        //设置端口号
        connectionFactory.setPort(5672);
        //设置连接哪个虚拟主机
        connectionFactory.setVirtualHost("/ems");
        //设置访问虚拟主机用户名密码
        connectionFactory.setUsername("ems");
        connectionFactory.setPassword("123");

        //获取连接对象
        Connection connection = connectionFactory.newConnection();
        //获取连接中通道
        Channel channel = connection.createChannel();
        //通道绑定对应的消息队列
        //参数1:队列名称 如果队列不存在自动创建
        //参数2:用来定义队列是否要持久化 true 持久化   false 不持久化
        //参数3:是否独占队列 true 独占   false 不独占
        //参数4:是否在消费后自动删除队列 true 自动删除 false 不自动删除
        //参数5:额外参数
        channel.queueDeclare("hello", false, false, false, null);
        //消费者
        //参数1:消费哪个队列的消息 队列名称
        //参数2:开始消息的自动确认机制
        //参数3:消费时的回调接口
        channel.basicConsume("hello", true, new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("new String(body) = " + new String(body));
            }
        });
View Code

猜你喜欢

转载自www.cnblogs.com/teles/p/12727744.html