# rabbitMQ学习(一)入门使用

本文介绍了为什么需要学习rabbitMQ,解释了消息队列的基本概念和优势,包括解耦、提速和消峰。接着,讨论了MQ面临的高可用、复杂性和一致性问题。文章提到了一些常见的消息中间件,并推荐初学者从rabbitMQ开始学习。最后,简述了rabbitMQ的基本使用,包括其结构和五种工作模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rabbitMQ学习(一)

前言

为什么要学习rabbitMQ?

别问,必学。

MQ是什么,有什么优势?

“消息队列”是在消息的传输过程中保存消息的容器。 --百度百科

简单来说,消息队列即在两个系统中用于消息传递的一个中间件,一般有三个角色

  1. 消息中间件
  2. 发送方(生产者)
  3. 接收方(消费者)

相比于让两个系统之间进行互相调用,使用MQ有如下优势:

  1. 解耦 两个系统不会直接依赖,而是与消息中间件进行通信
  2. 提速 发送方只需要将消息放入队列中即可返回,不用等待接收方的处理
  3. 消峰 让接收方不会被动承担大量的请求压力,而是主动的处理消息队列中的请求

那么MQ中还有哪些问题需要解决呢?

  1. 高可用 中间件都面临着高可用的问题,我们必须最大程度下保证消息队列不会宕机
  2. 复杂性 由于是通过MQ来进行异步调用,那么怎们保证消息没有被重复消费?消息丢失怎么办?如何按顺序处理消息?这都是需要考虑的问题
  3. 一致性 由于生产者发送完数据之后就直接返回,若数据处理错误就会造成生产者和消费者数据的不一致,这也是要解决的问题

常见的MQ

市面上有很多MQ产品:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFSRpZ6J-1620897548293)(uploads/image-20210511153834624.png)]

因为是初学者,所以我们建议先学习rabbitMQ,该产品的社区较为活跃,也更为稳定

RabbitMQ

基本使用

rabbitMQ的使用很简单,安装就不在这里赘述了。

我们先看一下rabbitMQ中的结构图:

image-20210511224210966

可以看到主要分为5大部分,除开生产者和消费者还有

生产者的 Connection: 用于管理和MQ之间的Socket连接,一个连接中可以有多个Channel进行数据传输

消费者的 Connection: 同上

Brocker: 就是MQ的服务器,其中包含多个虚拟机(类似于多个数据库)。每一个虚拟机包含多个Exchange(交换机),交换机与生产者对应,可以绑定多个队列,并将生产者的消息发送到绑定的队列中,而队列和消费者对应,消费者不断地从队列中取数据。

我们首先考虑一种最为简单的模式,即一个消费者、一个生产者。

这样我们就只需要一个交换机、一个队列:

生产者:

// 1. 创建工厂
ConnectionFactory factory =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值