可以访问官网查看下载信息rabbitmq官网

选择合适的版本,注意:rabbitmq需要下载一个Erlang才能使用
我自己是在一下两个连接中下载的
rabbitmq 3.8.8
erlang 21.3.8.15
需要下载其他版本的同学注意erlang版本是否匹配,可以访问该链接查询匹配信息版本匹配信息

rpm -ivh erlang-21.3.8.15-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
/sbin/service rabbitmq-server start
/sbin/service rabbitmq-server stop
/sbin/service rabbitmq-server status
程序启动成功以后,可以下载一个插件,用于访问web界面
rabbitmq-plugins enable rabbitmq_management

注意:下载插件是需要先关闭程序再下载
访问如下地址
运行有mq的服务器的地址:15672
访问成功界面如下:

使用内置用户登录时(用户名:guest 密码:guest)无法登录。
原因:该用户没用权限。
解决方法:

rabbitmqctl list_users
rabbitmqctl add_user admin root
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
成功登录后,界面如下:

<dependency>
<groupId>com.rabbitmqgroupId>
<artifactId>amqp-clientartifactId>
<version>5.8.0version>
dependency>
<dependency>
<groupId>commons-iogroupId>
<artifactId>commons-ioartifactId>
<version>2.6version>
dependency>
public class Producer {
//队列名称
public static final String QUEUE_NAME = "hello";
//发消息
public static void main(String[] args) throws Exception{
//创建工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂IP 连接RabbitMQ的队列
factory.setHost("192.168.221.128");
//用户名
factory.setUsername("admin");
//密码
factory.setPassword("root");
//创建连接
Connection connection = factory.newConnection();
//获取信道
Channel channel = connection.createChannel();
/**
* 生成一个队列
* 1. 队列名称
* 2. 队列里面的消息是否持久化(磁盘),默认情况下消息存储在内存中
* 3. 该队列是否只供一个消费者进行消费 是否进行消费共享,true:可以多个消费者 false:只能一个消费者使用
* 4. 是否自动删除 最后一个消费者断开连接以后 给队列是否自动删除 true自动删除 false不自动删除
* 5. 其他参数
*/
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
//发消息
String massage = "hello world";
/**
* 发送一个消息
* 1. 发送到哪个交换机
* 2. 路由的Key值是哪个 本次是队列的名称
* 3. 其它参数信息
* 4. 发送消息的消息体
*/
channel.basicPublish("", QUEUE_NAME, null, massage.getBytes());
System.out.println("消息发送完毕");
}
}
public class Consumer {
//队列名称
public static final String QUEUE_NAME = "hello";
//接收消息
public static void main(String[] args) throws Exception{
//创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂IP 连接RabbitMQ的队列
factory.setHost("192.168.221.128");
//用户名
factory.setUsername("admin");
//密码
factory.setPassword("root");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
//回调 接收消息
DeliverCallback deliverCallback = (consumerTag, message) -> {
System.out.println(new String(message.getBody()));
};
//回调 取消消息
CancelCallback cancelCallback = consumerTag -> {
System.out.println("消息消费被中断");
};
/**
* 消费者 消费信息
* 1. 消费哪个队列
* 2. 消费成功以后是否要自动应答 true代表自动应答 false代表手动应答
* 3. 消费者未成功消费的回调
* 4. 消费者取消消费的回调
*/
channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);
}
}