1. 安装erlang
因为rabbitmq是erlang语言开发,所以要先安装erlang
yum install erlang
2. 下载rpm包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
3. 下载完成后安装
yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm
4. 安装完后重启服务
service rabbitmq-server start
5. 查看服务状态
service rabbitmq-server status
6. 安装插件
/sbin/rabbitmq-plugins enable rabbitmq_management
重启服务
service rabbitmq-server restart
这个时候就能访问http://ip:15672访问到页面了,默认的账号密码是guest/guest。
但是从3.3.0版本开始,禁止使用guest/guest登录localhost之外的访问。解决办法是,找到
rabbitmq_server-3.6.15/ebin/rabbit.app文件中的:
{loopback_users, [<<"guest">>]},
修改为:
{loopback_users, []},
然后重启即可。
7. 阿里云安全组配置15672/5672外网可访问
以上部分摘自:https://blog.csdn.net/u014209205/article/details/80642210
Eclipse创建SpringBoot + RabbitMQ
1. springBoot插件安装
https://blog.csdn.net/yuzhiqiang_1/article/details/84578633
2.创建mq项目
3.RabbitMQ.java(链接与添加消息)
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class RabbitMQ {
private static String QUEUE_NAME = "asd";
/**
* 获取连接
* @return Connection
* @throws Exception
*/
public static Connection getConnection() throws Exception {
//定义连接工厂
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("你的地址");
factory.setPort(5672);
//设置vhost
factory.setVirtualHost("/");
factory.setUsername("你的用户名");
factory.setPassword("你的密码");
//通过工厂获取连接
Connection connection = factory.newConnection();
return connection;
}
//创建队列,发送消息
public static void main(String[] args) throws Exception {
//获取连接
Connection connection = getConnection();
//创建通道
Channel channel = connection.createChannel();
//声明创建队列
channel.queueDeclare(QUEUE_NAME, false,false,false,null);
//消息内容
String message = "Hello World!!!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println("发送消息:" + message);
//关闭连接和通道
channel.close();
connection.close();
}
}
4. Reqv.java(获取消息)
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.QueueingConsumer;
public class Reqv {
private final static String QUEUE_NAME = "asd";
// //消费者消费消息
public static void main(String[] args) throws Exception {
// 获取连接和通道
Connection connection = RabbitMQ.getConnection();
Channel channel = connection.createChannel();
// 声明通道
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
// 定义消费者
QueueingConsumer consumer = new QueueingConsumer(channel);
// 监听队列
channel.basicConsume(QUEUE_NAME, true, consumer);
while (true) {
// 这个方法会阻塞住,直到获取到消息
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println("接收到消息:" + message);
}
}
}
5. 如果不能import QueueingConsumer这个类 请在pom文件中加入
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.6</version>
</dependency>
<!-- 序列化相关依赖 -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>