栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMQ---HelloWord模型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ---HelloWord模型

provide

        

package HelloWord;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
import org.junit.Test;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeoutException;


public class Provider {

    @Test
    public void testSendMessage() throws IOException, TimeoutException {

        //创建连接mq的连接工厂对象
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置连接rabbitmq的主机
        connectionFactory.setHost("连接服务器地址");
        //设置端口号
        connectionFactory.setPort(5672);
        //设置连接哪个虚拟主机
        connectionFactory.setVirtualHost("虚拟主机名称");
        //设置访问虚拟主机的用户名和密码
        connectionFactory.setUsername("账户");
        connectionFactory.setPassword("密码");
        //获取连接对象
        Connection connection = connectionFactory.newConnection();
        //获取连接中的通道对象,一个通道可以向不同队列发送消息
        Channel channel = connection.createChannel();
        //通道绑定对应的消息队列
        //参数一:绑定队列,名称 如果不存在则自动创建
        //参数二:用来定义队列的特性是否要持久化。true为持久化,即当RabbitMQ服务关闭时,若此处为false,队列同时也会被销毁,消息是否被销毁,由设置决定
        //参数三:是否独占队列,即当前连接独占队列,true表示独占
        //参数四:是否在消费完成后自动删除队列,true,自动删除,即当消费者消费完消息关闭连接后,队列将被删除
        //参数五:额外参数
        channel.queueDeclare("hello", false, false, false, null);
        //发布消息
        //参数1:交换机名称
        //参数2:队列名称
        //参数3:传递消息额外设置,(MessageProperties.PERSISTENT_TEXT_PLAIN)持久化消息,不会随RabbitMQ重启而丢失
        //参数4:消息的具体内容
        channel.basicPublish("", "hello", null, "hello RabbitMQ".getBytes(StandardCharsets.UTF_8));
        //关闭
        channel.close();
        connection.close();
    }
}
consumer

        

package HelloWord;

import com.rabbitmq.client.*;
import org.junit.Test;

import java.io.IOException;
import java.util.concurrent.TimeoutException;


public class Consumer {

    public static void main(String[] args) throws IOException, TimeoutException {
        //创建连接mq的连接工厂对象
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //设置连接rabbitmq的主机
        connectionFactory.setHost("连接服务器地址");
        //设置端口号
        connectionFactory.setPort(5672);
        //设置连接哪个虚拟主机
        connectionFactory.setVirtualHost("虚拟主机名称");
        //设置访问虚拟主机的用户名和密码
        connectionFactory.setUsername("账户");
        connectionFactory.setPassword("密码");
        //创建连接对象
        Connection connection = connectionFactory.newConnection();
        //创建通道
        Channel channel = connection.createChannel();
        //通道绑定对象(要与生产者的参数一致)
        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[] bodys){
                System.out.println(new String(bodys));
            }
        });
        //channel.close();
        //connection.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号