阿里云centos8 安装rabbitmq

rabbitmq

卸载以前安装的版本
# 卸载rabbitmq
/sbin/service rabbitmq-server stop
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarch
rm -rf /var/lib/rabbitmq

# 卸载erlang
yum list | grep erlang
yum -y remove erlang-*
yum remove erlang.x86_64
rm -rf /usr/lib64/erlang
查看linux版本号
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ lsb_release -a
安装erlang
# 下载合适的版本:https://github.com/rabbitmq/erlang-rpm/releases
# rabbitmq3.8.4开始要求erlang版本在23.2以上
# el8对应centos8,el7对应centos7

# 下载
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ wget https://github.com/rabbitmq/erlang-rpm/releases/download/v24.0.2/erlang-24.0.2-1.el8.x86_64.rpm

# 配置可执行权限
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ chmod +x erlang-24.0.2-1.el8.x86_64.rpm

# 安装
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo rpm -ivh erlang-24.0.2-1.el8.x86_64.rpm
# 一路按 Y 就行...

# 查看安装是否成功
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ erl

# halt(). 命令可退出erl 控制台
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ halt().
安装rabbitmq
# 下载合适的版本:https://www.rabbitmq.com/install-rpm.html#downloads
# 本次安装版本为:3.8.16
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16-1.el8.noarch.rpm

# 安装
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo yum install rabbitmq-server-3.8.16-1.el8.noarch.rpm
# 一路按 Y 就行...
运行rabbitmq
# 启动服务
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo systemctl start rabbitmq-server.service

# 停止服务
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo systemctl stop rabbitmq-server.service

# 查看状态
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo systemctl status rabbitmq-server.service
启动UI插件
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo rabbitmq-plugins enable rabbitmq_management

# 查看用户
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo rabbitmqctl list_users

# 刚开始只有一个 guest 用户,而 guest 用户只能支持本地登录,因此我们需要手动添加一个用户
# 添加用户 rabbitmqctl add_user {username} {password}
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo rabbitmqctl add_user admin admin2021

# 用户创建完成需要赋予administrator权限,否则无法登录管理控制台 
# 设置权限 rabbitmqctl set_user_tags {username} administrator
[backend@iZ8vb0jkzcfe058of4yto0Z rabbitmq]$ sudo rabbitmqctl set_user_tags admin administrator

# 设置用户访问目录的权限,如果不设置,则会报:access to vhost '/' refused for user 'admin' 错误
[backend@iZ8vb0jkzcfe058of4yto0Z middleware]$ sudo rabbitmqctl  set_permissions -p / admin '.*' '.*' '.*'
配置安全组
需要开放两个端口:
15672 网页访问端口 
5672 AMQP端口
访问管理控制台
访问地址:http://xxxx:15672/#/
账号:admin
密码:admin2021
springboot 整合 rabbitmq
1. pom文件
<!-- rabbitmq -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2. yml文件
spring:
	rabbitmq:
        # 集群地址,用逗号分隔
        addresses: xxxx:5672
        connection-timeout: 15000
        username: admin
        password: admin2021
        # 使用启用消息确认模式
        publisher-confirm-type: correlated
        virtual-host: /
3. 配置文件
package com.rj.seckill.config.rabbitmq;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DirectRabbitConfig {
    /**
     * 交换机
     */
    @Bean
    public DirectExchange myDirectExchange() {
        // name: 交换器名称
        // durable: true  是否持久化
        // autoDelete: 自动删除
        return new DirectExchange("myDirectExchange", true, false);
    }

    /**
     * 队列
     */
    @Bean
    public Queue myDirectQueue() {
        return new Queue("myDirectQueue", true);
    }

    /**
     * 绑定
     */
    @Bean
    public Binding bindingDirect() {
        return BindingBuilder.bind(myDirectQueue())
                .to(myDirectExchange())
                .with("my.direct.routing");
    }
}
4. 消息生产者
package com.rj.seckill.controller;

import com.rj.seckill.entity.SysUserEntity;
import com.rj.seckill.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @Api() 只有使用此注解修饰类,才能在swagger页面看到接口文档
 * */
@Controller
@RequestMapping("/rabbitmq")
@Api("测试rabbitmq接口")
public class RabbitMqController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    /**
     * 测试 rabbitmq 消息发送者
     * @ApiOperation() 定义接口名称
     * @Valid 开启参数校验
     */
    @PostMapping("/producer")
    @ResponseBody
    @ApiOperation("测试 rabbitmq 消息发送者")
    public R getUserListByPage() {
        String msg = "hello world!";
        rabbitTemplate.convertAndSend("myDirectExchange", "my.direct.routing", msg);
        return R.ok();
    }

}
5.查看消息是否发送成功

登录管理控制台,查看消息队列

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值