分布式消息中间件实践笔记

首先,这份分布式消息中间件实践笔记是以Java语言编写。

消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。 目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、 ZeroMQ、 MetaMQ 等。

这份笔记结合作者近年来在实际项目中使用消息中间件的经历和踩过的一些坑总结整理而成,主要介绍消息中间件使用的背景、基本概念,以及常用的四种消息中间件产品在各个业务场景中的使用案例。作为案例介绍,虽然不能对各种消息中间件产品的所有特性做详细说明,但是希望读者可以通过每章中的案例讨论和实践建议得到启发,为在实际工作中进行产品选型、业务场景方案制定、性能调整等提供思路。

下面会为大家分享分布式消息中间件实践笔记+分布式核心原理解析笔记,需要看图!

消息队列

系统间通信技术介绍

为何要用消息队列

消息队列的功能特点

设计一个简单的消息队列

  • 消息处理中心
  • 客户端访问

 

消息协议

AMQP

MQTT

STOMP

XMPP

JMS

 

RabbitMQ

简介

工程实例

  • Java 访问RabbitMQ实例
  • Spring 整合RabbitMQ
  • 基于RabbitMQ的异步处理
  • 基于RabbitMQ的消息推送

 

RabbitMQ实践建议

  • 虚拟主机
  • 消息保存
  • 消息确认模式
  • 消费者应答
  • 流控机制
  • 通道
  • 总结

 

ActiveMQ

简介

工程实例

  • Java 访问ActiveMQ实例
  • Spring 整合ActiveMQ
  • 基于ActiveMQ的消息推送
  • 基于ActiveMQ的分布式事务

 

ActiveMQ实践建议

  • 消息转发模式
  • 消息积压
  • 消息事务
  • 消息应答模式
  • 消息发送优化
  • 消息消费优化
  • 消息协议
  • 消息持久化

 

Kafka

简介

工程实例

  • Java 访问Kafka实例
  • Spring 整合Kafka
  • 基于Kafka的用户行为数据采集
  • 基于Kafka的日志收集
  • 基于Kafka的流量削峰

 

Kafka实践建议

  • 分区
  • 复制
  • 消息发送
  • 消费者组
  • 消费偏移量

 

RocketMQ

简介

工程实例

  • Java访问RocketMQ实例
  • Spring整合RocketMQ
  • 基于RocketMQ的消息顺序处理
  • 基于RocketMQ的分布式事务

 

RocketMQ实践建议

  • 消息重试
  • 消息重复
  • 集群
  • 顺序消息
  • 定时消息
  • 批量发送消息
  • 事务消息

 

分布式核心原理解析笔记

按照不同维度,分布式系统的指标可以分为性能、资源占用、可用性、可扩展性这四大类。我们自然希望自己的系统,是高性能、高可用、高扩展和低资源占用的,但考虑到硬件成本、开发效率等因素,必须要在设计不同的系统、业务时有所取舍。

所以,我又和你分析了典型的电商、loT、 电信、HPC (高性能计算)、大数据、 云计算、区块链等业务或系统的不同诉求,进而得出了系统设计者需要关注哪些指标。你在设计其他类型的系统时,可以按照这个思路进行取舍。

分布式协调与同步

分布式互斥

分布式选举

分布式共识

分布式事务

分布式锁

分布式技术是如何引爆人工智能的?

 

 

分布式资源管理与负载调度

分布式体系结构一集中式结构

分布式体系结构一非集中式结构

分布式调度架构一单体调度

分布式调度架构一两层调度

分布式调度架构一共享状态调度

分布式事务与分布式锁相关问题

 

 

分布式计算技术

分布式计算模式一MR

分布式计算模式一Stream

分布式计算模式一Actor

分布式计算模式一流水线

 

 

分布式通信技术

分布式通信一远程调用

分布式通信一发布订阅

分布式通信一消息队列

分布式体系架构与分布式计算相关问题

 

 

分布式数据存储

CAP理论

分布式数据存储系统一三要素

数据分布方式一哈希与一致性哈希

分布式数据复制技术

分布式数据—缓存技术

 

 

分布式高可靠

分布式高可靠一负载均衡

分布式高可靠一流量控制

分布式高可用一故障隔离

分布式高可用—故障恢复

如何判断并解决网络分区问题?

 

 

总结

消息队列在大型分布式系统中具有丰富的应用场景。例如,系统间需要解耦,一个系统发布消息,多个系统订阅消费消息,消息生产者并不需要知道消费方是谁。在高并发场景下,比如秒杀活动,短时间内会发起大量请求,为应对瞬时请求,如果部署大量的机器来处理请求,秒杀活动结束后流量很低,则会浪费很多资源,增加成本,而使用消息队列的堆积能力,先保存请求,再匀速处理请求,则会很好地解决此类问题。笔记中从不同角度细致地讲解了各种消息中间件,读者可以结合场景,从高可用性、可扩展性、伸缩性、消息堆积能力等方面选择符合自己需求的中间件。

100%免费获取方式:添加小助理