rabbitmq概述和工作模式

MQ的作用

  • 流量削峰:不管发布时间的流量有多大,订阅者都可以按照自己的速度区处理事件.
  • 应用解耦
  • 异步处理
    在这里插入图片描述

AMQP

在这里插入图片描述

  • Broker:接收和分发消息的应用,RabbitMQ Server 就是 Message Broker
  • Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出
    多个 vhost,每个用户在自己的 vhost 创建 exchange/queue 等
  • Connection:publisher/consumer 和 broker 之间的 TCP 连接
  • Channel:Channel 是在 connection 内部建立的逻辑连接,如果应用程
    序支持多线程,通常每个 thread 创建单独的 channel 进行通讯,AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻量级的Connection 极大减少了操作系统建立 TCP connection 的开销
  • Exchange:message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到 queue 中去。
  • Queue:消息最终被送到这里等待 consumer 取走
  • Binding:exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key,Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据

工作模式

简单工作模式

一个队列对应一个消费者
在这里插入图片描述

work模式

轮询分发,一个队列对应多个消费者,但是一条消息只能被一个消费者获取
在这里插入图片描述

发布订阅模式

简单工作模式和工作模式使用默认交换机""
rabbitmq有四种交换机,direct、fanout、topic、headers,发布订阅模式使用faout,faout交换机将消息路由给所有绑定的队列,绑定的路由key默认为""

在这里插入图片描述

路由模式

路由模式交换机类型为direct,每个与之绑定的队列都有一个路由key,交换机将与队列路由key相同的消息分发给队列

在这里插入图片描述

主题模式

路由模式需要路由key完全相同才将消息分发给队列,而主题模式则是采用模糊匹配
符号“#”表示匹配一个或多个词,符号“*”表示匹配一个词。

在这里插入图片描述

不公平分发

在这里插入图片描述

存在一个未确认的消息缓冲区,因此希望开发人员能限制此缓冲区的大小,以避免缓冲区里面无限制的未确认消息问题。这个时候就可以通过使用 basic.qos 方法设置“预取计数”值来完成的.
该值定义通道上允许的未确认消息的最大数量。一旦数量达到配置的数量,
RabbitMQ 将停止在通道上传递更多消息,除非至少有一个未处理的消息被确认

在这里插入图片描述

依赖

<!--rabbitmq 依赖客户端-->
<!--指定 jdk 编译版本-->
<build>
 <plugins>
	 <plugin>
		 <groupId>org.apache.maven.plugins</groupId>
		 <artifactId>maven-compiler-plugin</artifactId>
		 <configuration>
		 <source>8</source>
		 <target>8</target>
		 </configuration>
	 </plugin>
 </plugins>
</build>
<dependencies>
 <!--rabbitmq 依赖客户端-->
	 <dependency>
	 <groupId>com.rabbitmq</groupId>
	 <artifactId>amqp-client</artifactId>
	 <version>5.8.0</version>
	 </dependency>
 <!--操作文件流的一个依赖-->
	 <dependency>
	 <groupId>commons-io</groupId>
	 <artifactId>commons-io</artifactId>
	 <version>2.6</version>
	 </dependency>
</dependencies>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值