宝塔+RabbitMQ+javaTest

宝塔+RabbitMQ+javaTest

(这玩意每一种版本和使用情景不同要配置的东西都有区别,说多了都是泪,都是一步步踩的坑,废话不多说直接上干货。)

1、环境:腾讯云+CentOS7宝塔

有一说一,宝塔只有一个版本的RabbitMQ(3.12.4),也就是最稳定的了,不用思考,商店搜索一键安装即可。(非docker版本)
image

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

2、登录MQ网址

首先打开刚刚安装好的面板,里面有账号和密码,不要使用默认账号密码guest。

登录网址 RabbitMQ Management

image

神奇的来了,你会发现输入账号和密码后会出现 “登录以访问此站点” ,原因是含有双重认证层,宝塔面板默认会为外网访问的端口(如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、 好了能进去了 ,用你的新账号进去。
image

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();


    }
}


最后测试通过界面
image

4、MQ控制台基本操作

1、新建队列hello.queue1和hello.queue2
2、向默认的amp.fanout交换机发送一条消息
3、查看消息是否到达hello.queue1和hello.queue2

新建一个两个队列
image

到交换机发送消息
image

编辑消息并发送
image

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

绑定队列
image

这回在发送旧不会报错了
image

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

image

posted @ 2025-06-25 17:02  周半仙  阅读(159)  评论(0)    收藏  举报