消息队列-简单介绍Java消息队列,什么是消息队列,作用等

消息队列的应用与理解
本文探讨了消息队列在高并发场景中的应用价值,包括缓解服务器压力、实现异步处理、提高系统的可扩展性和解耦合等。通过具体案例说明了如何利用消息队列来处理突发流量和耗时操作。

天天说队列, 项目请求数据不能及时处理时,就一言不合通过队列啊, 心中那个是妈卖批,那么到底什么队列呢,队列有到底运用于哪些运用场景呢;

先说说应用场景吧, 不知道有啥作用,看多了含义,原理什么的还是头疼;

消息队列应用场景

1.比如你的服务器一秒能处理100个订单,但秒杀活动1秒进来1000个订单,持续10秒,在后端能力无法增加的情况下,你可以用消息队列将总共10000个请求压在队列里,后台consumer按原有能力处理,100秒后处理完所有请求(而不是直接宕机丢失订单数据)

使用消息队列能够使关键组件顶住增长的访问压力,而不是因为超出负荷的请求而完全崩溃 , 就是防止雪崩。某一时刻数据量突然增大,起到一个缓冲。


2.一般都是异步的,不要求立即响应。打个比喻,你同时只能做一件事,但是你有一个ToDoList,每做完一个,在ToDoList中划掉一个,有新的分给你的任务,就放到ToDoList后面,这个ToDoList差不多就是一个队列了,队列就是一种数据结构,减轻的不止是数据库的压力。


3.可用于一些不及时的操作,耗时的操作,比如发送邮件、图片处理等等。

就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。

4.项目功能软件的正常使用中,并不需要去刻意的使用消息队列处理,而是当出现性能瓶颈时采用,否则盲目的使用消息队列 , 增加维护和开发的成本,反而影响开发进度而得不偿失。

 

什么是消息队列

java中,代码执行的通信交互产生的数据都可以称之为消息

队列则是:按顺序的进行排队等待

通俗的讲消息队列:就是 程序按顺序的"入队" > 等待 >  "出队" 执行任务; 

实际应用中, 你可以这样理解: 它就是一个容器, 这一边做 "入队" 操作(把数据放进去), 不需要立即处理。

等有空,或者等程序空闲的时候,按先进先出的原则"出队"(把数据取出来) ,然后一一执行; 

 

消息队列的作用

使用消息队列的 10 个理由 

1.解耦 

2.冗余 

3.扩展性 

4.灵活性和峰值处理能力 

5.可恢复性 

6送达保证 

7.排序保证 

8.缓冲 

9.理解数据流 

10.异步通信 

具体解释,可阅读该文:  

http://www.oschina.net/translate/top-10-uses-for-message-queue 

 

如果还不懂,可看下一篇转载的文章;

 

 

 

转载于:https://my.oschina.net/java1314/blog/1335043

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值