腾讯内容首发:分布式核心原理解析笔记 + 分布式消息中间件实践笔记 PDF 版
分布式消息中间件实践笔记
首先,这份分布式消息中间件实践笔记是以 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%免费获取方式:转发这篇文章+关注我,然后加助理老师 VX:wjj2632646 获取!
版权声明: 本文为 InfoQ 作者【Java架构追梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/f1e3eb6e76ecd433de26ec75c】。未经作者许可,禁止转载。
评论