宝塔+RabbitMQ+javaTest
宝塔+RabbitMQ+javaTest
(这玩意每一种版本和使用情景不同要配置的东西都有区别,说多了都是泪,都是一步步踩的坑,废话不多说直接上干货。)
1、环境:腾讯云+CentOS7宝塔
有一说一,宝塔只有一个版本的RabbitMQ(3.12.4),也就是最稳定的了,不用思考,商店搜索一键安装即可。(非docker版本)

安装好后可以打开面板,查看账号密码

2、登录MQ网址
首先打开刚刚安装好的面板,里面有账号和密码,不要使用默认账号密码guest。
登录网址 RabbitMQ Management

神奇的来了,你会发现输入账号和密码后会出现 “登录以访问此站点” ,原因是含有双重认证层,宝塔面板默认会为外网访问的端口(如15672)添加基础认证,服务器防火墙或安全组设置了访问限制,不用怀疑你自己,你现在输入什么都没用;欲解决此问题请走如下步骤:
1、安全组打开15672端口
2、宝塔防火墙放行15672端口
3、终端代码
# 检查服务是否运行
systemctl status rabbitmq-server
# 如果未运行,先启动服务
systemctl start rabbitmq-server
#示例:创建用户newuser,密码为StrongPassword123!
rabbitmqctl add_user newuser StrongPassword123!
#设置用户角色(重要!)administrator:超级管理员(可管理所有资源)、monitoring:监控权限、management:普通管理权限
# 设置为管理员(推荐)
rabbitmqctl set_user_tags newuser administrator
#授予虚拟主机权限(重要!)
# 授予对默认虚拟主机(/)的全部权限
rabbitmqctl set_permissions -p / newuser ".*" ".*" ".*"
# 列出所有用户
rabbitmqctl list_users
# 查看用户权限
rabbitmqctl list_permissions -p /
4、 好了能进去了 ,用你的新账号进去。

3、java连接MQ测试
我用的是maven项目,需要提前引入依赖。
<!--RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
/**RabbitMQConnection类**/
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class RabbitMQConnection {
public static Connection getConnection() throws IOException, TimeoutException {
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("你自己的服务器IP不要带http前缀");
connectionFactory.setVirtualHost("/");
connectionFactory.setUsername("刚刚新建的账号名");
connectionFactory.setPassword("刚刚新建的密码");
connectionFactory.setPort(5672);//注意这里是5672端口,也要去安全组和防火墙打开
Connection connection = connectionFactory.newConnection();
return connection;
}
}
/**AppTest类**/
import com.gec.utils.RabbitMQConnection;
import com.rabbitmq.client.Connection;
import org.junit.Test;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class AppTest
{
@Test
public void test1() throws IOException, TimeoutException {
Connection connection = RabbitMQConnection.getConnection();
connection.close();
}
}
最后测试通过界面

4、MQ控制台基本操作
1、新建队列hello.queue1和hello.queue2
2、向默认的amp.fanout交换机发送一条消息
3、查看消息是否到达hello.queue1和hello.queue2
新建一个两个队列

到交换机发送消息

编辑消息并发送

报错,因为交换机需要先绑定才能转发,并且没有存储的能力,所以首先要让交换机和队列绑定关系

绑定队列

这回在发送旧不会报错了

5、MQ控制台可视化界面添加用户


浙公网安备 33010602011771号