首页技术文章正文

消息队列的理解【黑马python培训】

更新时间:2019年07月26日 10时50分00秒 来源:黑马程序员论坛

1.什么是消息队列:消息队列是消息在传输过程中储存消息的容器。消息队列管理器在将消息从它的源传递到目标时充当着中间人的角色。如果发送消息过程中,接受者不能够接收消息,那么消息队列会保留消息。
2.为什么需要消息队列:消息队列主要有三个作用:异步,削峰,解耦。
主要是为了解决高并发情况下,由于大量的请求一起发送,这时候同步执行的话,往往会阻塞程序,因此我们需要进行异步处理,缓解系统压力,也可以削峰。
另外,如果几个系统在处理业务的时候耦合性很大,那么只要其中一个系统出问题,其他系统也无法工作,消息队列还可以解耦和。
因此消息队列是大型分布式系统中必不可少的中间件,一般用到的消息队列有rabbitMQ,redis.
当然,消息队列也有缺点
系统可用性降低:比如如果用redis来作为中间人,如果redis挂了,那么整个系统就不能用了,解决方法可以考虑用集群。
系统复杂度增加:多增加了MQ队列,使得整个系统的复杂度提高。
一致性问题:操作多个系统的时候,可能会出现有一两个系统操作不成功过就返回数据,结果造成一致性问题。
3.rabbitmq跟redis来作消息队列的区别?
1.可靠性:
redis:没有相应机制保证消息的消费,当消费者消费失败,消息丢失
rabbitmq:具有消息消费确认,如果消费者消费失败,会自动返回队列中
2.持久化:
redis:将整个redis实例持久化在磁盘中
rabbitmq:队列跟消息都能够选择是否要实现持久化
3.消费者负载均衡:
redis:不提供
rabbitmq:根据消费者情况,进行消息的负载均衡
应用场景分析
Redis:轻量级,高并发,存取快
即时数据分析、秒杀计数器、缓存等
RabbitMQ:重量级,高并发,异步
批量数据异步处理、并行任务串行化,高负载任务的负载均衡等

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!