栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

消息队列MQ

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

消息队列MQ

中间件技术

消息中间件: 主要负责消息的传递、存储、分发。

分类:

分布式消息中间件: ActiveMQ、RabbitMQ、RocketMQ、Kafka,使用场景{消息中间件监控数据、异步数据传输场景、削分填谷场景、任务调度、海量数据同步、分布式事务、日记管理、大数据分析},,属性信息{AMQP、MQTT、持久化设计、Kafka协议、消息分发设计、高可用设计、可靠性设计、容错设计}

负载均衡中间件: Nginx,{针对大型项目的: LVS负载均衡软件、KeepAlive}、CDN

【 LVS是当Nginx发生故障,也会对Nginx做架构和集群,然后用keepAlive来保持心跳,CDN是加速】

缓存中间件: MemCache{是代码级别的}、Redis

数据库中间件 : Mycat、ShardingJdbc

案例分析 : 异步数据保存、订单数据的消息分发、分布式事务、消息的容错、分布式锁、分布式会话、分库分表

 

source : MQ选型:ActiveMQ、RocketMQ、RabbitMQ、Kafka对比_老树的技术博客-CSDN博客_activemq rocketmq

MQ选型:ActiveMQ、RocketMQ、RabbitMQ、Kafka对比 为什么要使用消息队列?

回答这个问题,咱只答三个最主要的应用场景(不可否认还有其他的,但是只答三个主要的),即以下六个字:解耦、异步、削峰

(1)解耦

传统模式的缺点:系统间耦合性太强,A系统在代码中直接调用 B系统 和 C系统的代码,如果将来D系统接入, A系统 还需要修改代码,过于麻烦!

中间件模式的的优点:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。

 (2)异步【各个需要的系统都去中间件中拿东西,可以并行进行处理】

传统模式的缺点:一些非必要的业务逻辑以同步的方式运行,太耗费时间。

中间件模式的的优点:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度

(3)削峰

传统模式的缺点:并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常

中间件模式的的优点:系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。

使用了消息队列会有什么缺点?

       系统可用性降低:你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加个消息队列进去,那消息队列挂了,你的系统不是呵呵了。因此,系统可用性降低 

       系统复杂性增加:要多考虑很多方面的问题,比如一致性问题、如何保证消息不被重复消费,如何保证保证消息可靠传输。因此,需要考虑的东西更多,系统复杂性增大。

3、消息队列如何选型?

4、如何保证消息队列是高可用的?

回答:这问题,其实要对消息队列的集群模式要有深刻了解,才好回答。以rcoketMQ为例,他的集群就有多master 模式多master多slave异步复制模式多 master多slave同步双写模式。多master多slave模式部署架构图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号