RabbitMQ环境搭建和Spring Boot 集成

本文详细介绍了如何在SpringBoot项目中集成RabbitMQ,包括Erlang环境的安装,RabbitMQ服务器的配置,用户管理,以及解决SpringBoot与RabbitMQ的交互问题,如RestTemplate的配置和消息生产消费机制。
摘要由CSDN通过智能技术生成

RabbitMQ环境搭建和Spring Boot集成

1. 安装 Erlang

RabbitMQ 需要 Erlang 运行环境。首先,我们需要安装它。为此,你可能需要添加 EPEL 仓库,因为 Erlang 可能不在默认的仓库中。

sudo yum install epel-release -y
sudo yum install erlang -y

2. 导入 RabbitMQ 官方仓库和安装

sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

3. 创建 RabbitMQ YUM 仓库

编辑 /etc/yum.repos.d/rabbitmq.repo 文件并添加以下内容:

[rabbitmq-server]
name=rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300  
sudo yum update -y  

4. 查看可用的 RabbitMQ 版本和安装

sudo yum --showduplicates list rabbitmq-server
sudo yum install rabbitmq-server-3.8.28-1.el7   #当前我的Erlang版本是Erlang 22
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

注意: Erlang/OTP 是一个包括多个应用的大集合。当我们提到 “Erlang 的版本” 通常是指的 Erlang/OTP 的版本。例如,Erlang/OTP 22 就是我们说的 Erlang 22。而当你使用 erl -version 命令时,你实际上查看的是 Erlang BEAM 虚拟机的版本。

5. RabbitMQ 用户管理

默认的 guest 用户仅在 localhost 上有权限。为了允许从外部 IP 连接,下面列举两种方法:

  • 更改 RabbitMQ 配置: 可以修改 RabbitMQ 的配置以允许 guest 用户从任何 IP 进行访问,但不推荐这样做因为可能导致安全风险。

  • 创建新用户:

    rabbitmqctl add_user newuser newpassword
    rabbitmqctl set_permissions -p / newuser ".*" ".*" ".*"
    

    在应用配置中更新连接信息:

    spring.rabbitmq.username=newuser
    spring.rabbitmq.password=newpassword
    

6. Spring Boot 配置

如果在 Spring Boot 1.4 或更高版本中遇到 RestTemplate 的自动装配问题,可以使用 RestTemplateBuilder 来创建和配置 RestTemplate bean。

引入依赖

确保 pom.xml 中有以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

定义 RestTemplate Bean

@Configuration
public class AppConfig {

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }
}

使用上述配置,就可以在任何 Spring 组件中自动装配并使用 RestTemplate 了。

7. 消息的交互

本地的 Spring Boot 应用和云端的 Spring Boot 应用可以通过 RabbitMQ 实例进行交互。基本思路是:一个应用作为消息的生产者将消息发送到 RabbitMQ,而另一个应用作为消费者从 RabbitMQ 接收消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值