目录

  • 分布式消息队列(MQ)认知提升
  • RabbitMQ实战
  • RabbitMQ可靠性投递基础组件封装
  • kafka应用实战
  • Kafka高吞吐量日志收集实战
  • 架构思考:分布式日志、跟踪、告警、分析平台

分布式消息队列(MQ)认知提升

  • 业界主流的分布式消息队列(MQ)与技术选型
  • ActiveMQ特效原理与集群架构
  • RabbitMQ特性原理与集群架构解析
  • RocketMQ特性原理与集群机构解析
  • Kafka特性原理与集群架构解析

业界主流的分布式消息队列(MQ)与技术选型

分布式消息队列(MQ)应用场景

服务解耦

服务之前通信,强依赖还是弱依赖

消峰填谷

及时性很高,流量很大的场景,【秒杀、抢购】
高峰和低谷,消息缓存到一个地方,慢速的去处理,做消费

异步化缓冲

做到最终一致性

遇到以上三种时候,可以选择MQ

分布式消息队列(MQ)应用思考点

生产端可靠性投递

金融领域相关,消息一定不能丢失,生产端100%可靠性投递,消息发出去,一定要和数据库保障一个原子性

消费端幂等

生产端做到消息投递,消费端可能有重复的消息,消费端做到消费一次两次,或多次,消费端一定要做到幂等性验证,不让消息消费多次。

高可用性

不宕机、多集群

低延迟

大流量下

可靠性

副本

堆积能力

当前MQ是否能抗住业务的冲击

扩展性

是否能支持扩容等等

MQ的技术选项关注点

image.png

如何进行技术选型

各个MQ的性能、优缺点、相应的业务场景

ActiveMQ 适合传统行业,中小型公司,消息承载能力不是很大,像天猫,淘宝这类,就不适合使用ActiveMQ
RabbitMQ 横向扩展能力不是很好

集群架构模式、分布式、可扩展、高可用、可维护性

综合成本问题、集群规模、人员成本

能满足需求、人员是否熟悉

未来的方向、规划、思考

从业务方向开始考虑


ActiveMQ集群架构与原理解析

image.png


RabbitMQ四种集群架构

主备模式
远程模式
镜像模式
多活模式

Kafka介绍与高性能原因分析

Kafka时Linkedlr开源的分布式消息系统,目前归属于Apache顶级项目
Kafka主要特点是

特点

image.png

高性能原因是什么?