RabbitMQ消息中间件 附集成springboot案例代码

源码地址在最后… github

前言

1. rabbitMQ是基于erlang语言开发的, 如果想要安装rabbitMQ环境就得先安装erlang编译器,然后才可以安装rabbitMQ。
2.rabbitMQ是基于tcp/ip协议之上的amqp协议
为什么不使用tcp协议的原因至少有这两点点:

1.tcp会带对于rabbitmq没用的信息, 比如请求头.
2.性能…

1.操作rabbitMQ步骤

1:创建连接工程
2:连接Connection
3:通过连接获取通道Channel
4:创建交换机,声明队列,绑定关系,路由key, 发送消息,和接收消息
5:准备消息内容
6:发送消息给queue
7:关闭连接
8:关闭通道

2.rabbitMQ的几种工作模式

rabbitMQ一共有五种工作模式,四种交换机

五种工作模式分别是:

hello world 简单模式:

简单的发消息.收消息。一个生产者对应一个消费者

work 轮询模式:

公平分发(能者多劳)。
轮询分发(能者不得多劳,不能者不会偷懒。一个消息只能被一个消费者获取)

发布订阅模式:

一个消费者将消息首先发送到交换机,交换机绑定到多个队列,然后被监听该队列的消费者所接收并消费

路由模式:

生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列,接着监听该队列的消费者消费消息

主题模式:

符号“#”表示匹配一个或多个词,符号“*”表示匹配一个词。

四种工作交换机分别是:

direct 如果路由键完全匹配的话,消息才会被投放到相应的队列。

fanout 当发送一条消息到fanout交换器上时,它会把消息投放到所有附加在此交换器上的队列。

topic 设置模糊的绑定方式,“*”操作符将“.”视为分隔符,匹配单个字符;“#”操作符没有分块的概念,它将任意“.”均视为关键字的匹配部分,能够匹配多个字符。

header 该交换器允许匹配 AMQP 消息的 header 而非路由键,除此之外,header 交换器和 direct 交换器完全一致,但是性能却差很多,因此基本上不会用到该交换器。

简单理解四种交换机就是:

direct模式 生产者生产的消息就相当于植物大战僵尸里面的僵尸基地的僵尸,只有僵尸(生产者生产的消息)和植物(消费者)在同一条线上 植物(消费者)才能消灭(消费)这个(条)僵尸(消息),其他消费者不行只能干瞪着。

fanout 比较简单理解,就是生产者生产消息,消费者消费消息,申明为这个交换机的人都能收到消息,不用路由key.

topic 主题模式,类似模糊匹配 着重理解“#”表示匹配一个或多个词,符号“*”表示匹配一个词.

header 不了解,至今没用过…

3.关于rabbitmq的一些细节:

1. 如果不指定交换机,系统不会报错,因为默认配置了一个交换机.
2. 当没有设置消息持久化时,系统宕机,消息会持久化在磁盘,但是在重启的一瞬间,未持久化的消息会立马消失。
3.交换机和队列被创建后将不能被更改。我们在开发的时候如果想要更改可以重新创建一个交换机和队列进行关系绑定转移从而达到修改的效果.
在这里插入图片描述
rabbitMQ的web视图的几个重要角色
connections: 连接
channels: 通道
exchanges: 交换机
queues: 消息队列
admin:操作rabbitmq权限相关
overview: 内存磁盘监控

源码地址github:

https://github.com/AmbitionXiaojun/my-study/tree/main/springboot%2BrabbitMQ

以上几种模式都有案例,我自己辛苦找资料学的. get到了 请点赞! n_n 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值