栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMQ在SpringBoot中的应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ在SpringBoot中的应用

一、基本概念

RabbitMQ是一种消息中间件,用于处理来自客户端的异步消息。服务端将要发送的消息放入到队列池中。接收端可以根据RabbitMQ配置的转发机制接收服务端发来的消息。

常用消息队列有:Rabbitmq、Activemq、Rocketmq 阿里、Kafka、Tubemq 腾讯

应用场景:服务解耦、流量削峰、异步调用。

1、Exchange:接受生产者发送的消息,并根据Binding规则将消息路由给服务器中的队列。

ExchangeType常用的有direct、Fanout和Topic三种。ExchangeType决定了Exchange路由消息的行为。

2、Message Queue:消息队列,存储消息,等待消费者来取。

3、Binding Key:Exchange与Message Queue是通过binding key进行联系的。

4、Routing Key:指定这个消息的路由规则。我们的生产者只需要通过指定routing key来决定消息流向哪里。

二、RabbitMQ安装 设置ip

进入rabbitmq 虚拟机后依次执行下面指令,更改并检查ip信息

./ip-static           //执行脚本
ip: 192.168.64.140    //设置ip
ifconfig              //查看ip是否设置成功

***提前装置好docker容器,代码段中指令每条分开依次执行***

1 镜像 1.1 在线下载
//rabbitmq:management 镜像中已经安装了管理界面
docker pull rabbitmq:management
 1.2 使用离线镜像包

将离线安装包上传到Linux系统,使用docker指令导入镜像

docker load -i rabbit-image.gz
2 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
 
# 重启 docker 系统服务
systemctl restart docker
3 配置管理员用户信息

创建rabbitmq文件夹,添加rabbitmq.conf配置文件,配置用户名和密码。

mkdir /etc/rabbitmq
vim /etc/rabbitmq/rabbitmq.conf

# 添加两行配置:
default_user = admin
default_pass = admin
4 启动
docker run -d --name rabbit 
-p 5672:5672 
-p 15672:15672 
-v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf 
-e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf 
--restart=always 
rabbitmq:management

5 访问控制台
http://192.168.64.140:15672

主要端口介绍

  • 4369 – erlang发现口
  • 5672 – client端通信口
  • 15672 – 管理界面ui端口
  • 25672 – server间内部通信口
三、SpringBoot中RabbitMQ常用的几种模式 1 简单模式

只有一个消费者

2 工作模式

多个消费者,从同一个队列接收消息

负载均衡:消息会轮询发送给所有消费者

合理的分发消息:1.手动ACK

3 发布订阅模式

把消息群发给所有消费者,同一条消息所有消费者都能收到,使用fanout类型交换机

4 路由模式

通过关键词匹配,来确定吧消息发送到哪个队列,direct交换机实现这种路由规则

5 主题模式

和路由模式相同,具有特殊的关键词规则,Topic交换机实现这种特殊路由规则

6 RPC异步调用

两个队列,调用队列,返回队列

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353564.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号