前言
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ等。
本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。由于是基于Java语言开发,因此它非常适合Java初中级程序员阅读,学习。
由于文章篇幅有限,下文中的内容只展示这份手册的目录以及部分内容截图,若你需要完整版的pdf,可免费提供给你,转发关注后即可,传送门在此!
Part 1消息队列
介绍消息队列技术的背景,包括使用场景和消息队列的功能特点,并设计了一个简单的消息队列。
- 1.1 系统间通信技术介绍
- 1.2 为何要用消息队列
- 1.3 消息队列的功能特点
- 1.4 设计一个简单的消息队列
Part 2消息协议
介绍消息队列中常用的消息协议,包括每个消息协议的历史背景、主要概念和基于该协议的消息通信过程。本章所介绍的协议也是接下来理解各种消息中间件产品的基础。
2.1 AMQP
2.2 MQTT
2.3 STOMP
2.4 XMPP
2.5 JMS
Part 3RabbitMQ
具体介绍RabbitMQ的特点、主要概念和Java使用示例,接着通过使用RabbitMQ实现异步处理和消息推送的功能,最后给出在工作中使用RabbitMQ时的一些实践建议。
3.1 简介
3.2 工程实例
- 3.2.1 Java访问RabbitMQ实例
- 3.2.2 Spring整合RabbitMQ
- 3.2.3 基于RabbitMQ的异步处理
- 3.2.4 基于RabbitMQ的消息推送
3.3 RabbitMQ实践建议
- 3.3.1 虚拟主机
- 3.3.2 消息保存
- 3.3.3 消息确认模式
- 3.3.4 消费者应答
- 3.3.5 流控机制
- 3.3.6 通道
- 3.3.7 总结
Part 4ActiveMQ
具体介绍ActiveMQ的特点、基本概念和Java使用示例,接着通过使用ActiveMQ实现消息推送分布式事务的功能,最后给出在工作中使用ActiveMQ时的一些实践建议。
4.1 简介
4.2 工程实例
- 4.2.1 Java访问ActiveMQ实例
- 4.2.2 Spring整合ActiveMQ
- 4.2.3 基于ActiveMQ的消息推送
- 4.2.4 基于ActiveMQ的分布式事务
4.3 ActiveMQ 实践建议
- 4.3.1 消息转发模式
- 4.3.2 消息积压
- 4.3.3 消息事务
- 4.3.4 消息应答模式
- 4.3.5 消息发送优化
- 4.3.6 消息消费优化
- 4.3.7 消息协议
- 4.3.8 消息持久化
Part 5Kafka
具体介绍Kafka的特点、主要概念和Java使用示例,接着通过使用Kafka实现用户行为数据采集、日志收集和流量削峰的功能,最后给出在工作中使用Kafka时的一-些实践建议。
5.1 简介
5.2 工程实例
- 5.2.1 Java访问Kafka实例
- 5.2.2 Spring整合Kafka
- 5.2.3 基于Kafka的用户行为数据采集
- 5.2.4 基于Kafka的日志收集
- 5.2.5 基于Kafka的流量削峰
5.3 Kafka实践建议
- 5.3.1 分区
- 5.3.2 复制
- 5.3.3 消息发送
- 5.3.4 消费者组
- 5.3.5 消费偏移量
Part 6RocketMQ
具体介绍RocketMQ的特点、主要概念和Java使用示例,接着通过使用RocketMQ的特性实现消息顺序处理和分布式事务的另外一种解决方案,最后给出在工作中使用RocketMQ时的一些实践建议。
6.1 简介
6.2 工程实例
- 6.2.1 Java访问RocketMQ实例
- 6.2.2 Spring整合RocketMQ
- 6.2.3 基于RocketMQ的消息顺序处理
- 6.2.4 基于RocketMQ的分布式事务
6.3 RocketMQ实践建议
- 6.3.1 消息重试
- 6.3.2 消息重复
- 6.3.3 集群
- 6.3.4 顺序消息
- 6.3.5 定时消息
- 6.3.6 批量发送消息
- 6.3.7 事务消息
目录
总结
Alibaba在这片领域还是很有话语权的,介绍到的都是市面上主流也是应用最为广泛的四种消息中间件产品。可以看到,在整本书中不仅仅只是介绍这些消息中间件的来源、特性、Java 语言使用的示例,同时也结合具体业务场景的应用案例,最后给出在实际项目中使用时的一些建议和需要综合权衡的技术要点。
它带给你的更多是教你思维,通过这些思想方式进行实践,从实践中得到成长,这样你学到的东西才是真正对自己有用的,对你往后的工作一定会有较大的提升。
好的东西就应该被更多人读到,学到,因此希望大家能转发支持!
——转发+评论这篇文章,关注我,点击→→→→→传送门在此!