【架构师面试-消息队列-1】-消息队列是什么

1:概述

消息队列,分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削峰等问题。可实现高性能,高可用,可伸缩的最终一致性架构,是大型分布式系统不可或缺的基本组件【中间件】。

注意:消息队列容易与Java内部的MessageQueue搞混,我们一般所谓的消息队列,多指消息中间件,分布式消息队列。

2:目前主流的信息队列

Kafka

RabbitMQ

RocketMQ,老版本叫MetaQ

ActiveMQ,日落西山

Ones【阿里】

自研的MQ

3:消息队列的组成

Producer 消息的生产者

Consumer 消息的消费者

Message Broker:主要职责存储消息,转发消息。转发消息又分:Pull类型,Push类型

Pull:是指 Consumer 主动从 Message Broker 获取消息

Push:是指 Message Broker 主动将 Consumer 感兴趣的消息推送给 Consumer

4:消息队列的五大场景

应用解耦

异步处理

削峰填谷

日志处理

消息通讯【很少,IM】

5:消息队列优缺点

优点:应用解耦、异步提速、削峰填谷

缺点:

系统可用性降低:一荣俱荣,一损俱损,外部依赖越多,服务越是容易挂掉。

系统复杂度提升:1.消息怎么保证不重复消费。2.消息怎么保证不丢失。3.需要怎么保证顺序

性会出现一致性【没有共识】问题:弱一致、强可用。引入MQ需要保证数据的最终一致性,且

系统能够容忍短暂的不一致性。

上一篇:KAFKA消费者实现


下一篇:kafka在python中的使用及结束kafka消费者