消息队列是什么?

什么是消息队列

什么是消息队列(Message Queue )?从字面理解我们就可以知道,它一个应用中在消息的传输过程中保存消息的容器,拥有先进先出的特性。

消息队列的优势

消息队列的特点莫过于异步处理,异步处理带来了高可用、高并发、高可扩展、低延时等优势。

特点:

1.解耦

            各个应用组件之间互不干扰,不需要等待特定的组件完成工作后再工作,只需要保证后面所需要的数据放入消息队列中,后面的组件怎么做你不需要知道。

2.缩短响应时间

            当消息队列之前的组件不需要之后的返回数据,只需要将数据放入消息队列中便可以返回,不需要等待后方的组件完成操作后再返回,大大缩短响应时间。

3.流量削峰

           这个多用于秒杀系统中,因为高并发的原因,在保持系统不崩溃的情况下,控制最大的请求数量,当消息队列的数量达到所设定的最值时,拒绝请求。

应用场景

1.高并发的场景     秒杀系统,各种各色的商城

2.注册场景       

3.任何可以进行异步处理的部分,前提为消息队列带来的性能大于消息队列所创建的。

 

 

 

### 消息队列中间件概述 消息队列中间件是一种用于在不同应用程序之间传递数据的软件组件。通过这种方式,生产者可以将消息发送到队列中,而消费者可以从队列中读取消息并处理这些信息。这种机制使得各个服务之间的通信更加灵活可靠。 #### 工作原理 当一个应用需要向另一个应用传输数据时,它不会直接调用对方的服务接口而是把要传送的信息封装成一条条独立的消息存入特定的主题或队列里;另一端的应用则订阅该主题/监听对应的队列来获取新到达的数据项进行后续操作[^1]。 ```python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 声明queue channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(f"Received {body}") channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) print('Waiting for messages.') channel.start_consuming() ``` 此Python代码展示了如何设置简单的RabbitMQ客户端以接收来自名为`'hello'`队列中的消息[^2]。 #### 应用场景 - **解耦合**:允许系统的各部分松散连接起来,即使某些模块不可用也不会影响整个流程继续运行。 - **异步处理**:支持后台执行耗时的任务而不阻塞主线程响应速度,提高用户体验质量。 - **流量削峰**:能够平滑突发请求高峰带来的压力,在高并发情况下保持稳定性能表现.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值