IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 引入RabbitMQ的意义及优缺点 -> 正文阅读

[大数据]引入RabbitMQ的意义及优缺点

1.为啥要选用RabbitMQ

常见的消息队列有ActiceMQ,kafka,RocketMQ,RabbitMQ四种

ActiceMQ:
优点: 单机吞吐量万级,时效性ms级,几乎不丢失消息
缺点: 官方社区对ActiceMQ5.x维护越来越少,高吞吐量场景使用较少

kafka:

优点: 单机写入TPS约百万条/秒,最大的优点就是 吞吐量高,时效ms级.
	 大数据分布式常用,有管理界面,多用于实时计算及日志采集
缺点: 单机超过64个队列/分区,cup会发生明显的飙高现象,而且消息
	 也可能会丢失,一旦某一台代理宕机后,就可能丢失,社区更新也慢

RocketMQ

优点: 单机吞吐量十万级,可用性非常高,分布式架构,消息可以做到0丢失,
	 扩展性好,支持10亿级别的消息堆积,源码是java开发的
缺点: 支持的客户端语言不多,目前只支持java和c++,c++还不成熟.....
	 社区活跃度一般,系统迁移可能需要修改大量的代码

RabbitMQ

优点: 高并发,性能较好,吞吐量万级,功能比较完备,跨平台,支持多种语言,
	 社区活跃度也很高,更新频率相当高
缺点: 商业版需要收费,学习成本较高

基于以上MQ的特性,就选择了符合当前项目的RabbitMQ

2.常见的作用及应用场景

解耦合(为soa提供最终一致性的实现):

例如常见的订单,库存,支付等,如果写一块不仅处理速度慢,可用性也不高,一旦
某一个节点出现问题都会导致订单失败.如果引入RabbitMQ,只要在写入消息
队列这一步是成功的,就可以直接返回给用户下单成功,剩下的就可以分批处理了

提升效率:

例如订单流程: 将下单--修改库存--支付等流程通过异步的方式同时进行处理,将
极大的提升下单的总时间
再例如用户注册: 用户注册--发送邮件--发送短信也可以三步同时进行

流量削峰

例如秒杀/抢购等活动,在秒杀的那一段时间内,会瞬间接收远超当前能处理的
吞吐量,但是过了这段时间流量就又下来了,总不能多加好几个服务器在那儿放
着,只为了这几分钟甚至这几十分钟吧.引入MQ后,就可以正常处理请求,将超出
当前服务器支持的流量先进行一个保留,积压,等这段时间过去后就可以很快的处
理这些堆积的请求

引入消息队列的优缺点:

优点:

解耦,异步提升效率,削峰

缺点

1.系统复杂度
加任何一个框架都会增加系统的复杂度,mq自己的问题也有很多,例如消息的丢失,
重复消费等待问题
2.系统的可用性降低
一旦MQ出现问题,其他本来能用的系统接口也会挂掉,导致系统崩溃
3.一致性
因为MQ是异步处理请求的,也就意味着很有可能前面显示成功了,但是后面
处理失败了,还需要另外的机制来解决这个问题

还是看自己的业务需求,小项目不建议引入,中大型有需要的项目可根据项目需求选择适当的MQ进行引入

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:53:02  更:2021-07-28 07:54:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:40:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码