avatar
文章
94
标签
89
分类
16

首页
归档
标签
分类
关于
虾壳
搜索
首页
归档
标签
分类
关于

RocketMQ

发表于2023-10-02|更新于2023-10-02|JavaJava教程
|字数总计:5|阅读时长:1分钟|阅读量:
文章作者: 虾壳
文章链接: http://yagote.github.io/2023/10/02/rocketmq/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 虾壳!
教程消息队列RocketMQ
上一篇
SpringCloud旧
下一篇
Kafka旧
相关推荐
2023-10-02
Kafka旧
2024-02-26
Kafka
2023-11-08
RabbitMQ
目录
  1. 第1章 RocketMQ概述
    1. 1 、MQ简介
    2. 2 、MQ用途
    3. 3 、常见MQ产品
    4. 4 、MQ常见协议
    5. 5、RocketMQ介绍
  2. 第 2 章 RocketMQ的安装与启动
    1. 1、基本概念
      1. 1.1 消息(Message)
      2. 1.2 主题(Topic)
      3. 1.3 标签(Tag)
      4. 1.4 消息队列(MessageQueue)
      5. 1.5 消息标识(MessageId/Key)
    2. 2、系统架构
      1. 2.1 Producer
      2. 2.2 Consumer
      3. 2.3 Name Server
        1. 2.3.1 功能介绍
        2. 2.3.2 路由注册
        3. 2.3.5 路由剔除
        4. 2.3.6 路由发现
        5. 2.3.7 客户端NameServer选择策略
      4. 2.4 Broker
        1. 2.4.1 功能介绍
        2. 2.4.2 模块构成
        3. 2.4.3 集群部署
      5. 2.5 工作流程
        1. 2.5.1 具体流程
        2. 2.5.2 Topic的创建模式
        3. 2.5.3 读/写队列
    3. 3、单机安装与启动
      1. 3.1 准备工作
      2. 3.2 修改初始内存
        1. 3.2.1 修改runserver.sh
        2. 3.2.2 修改runbroker.sh
        3. 3.2.3 修改broker.conf
      3. 3.3 启动
        1. 3.3.1 启动NameServer
        2. 3.3.2 启动broker
      4. 3.4 关闭Server
    4. 4、 控制台的安装与启动
      1. 4.1 下载
      2. 4.2 修改配置
      3. 4.3 添加依赖
      4. 4.4 打包
      5. 4.5 上传到服务器启动
      6. 4.6 发送/接收消息测试
        1. 4.6.1 发送消息
        2. 4.6.2 接收消息
        3. 4.6.2 报错解决
    5. 5、集群搭建理论
      1. 5.1 数据复制与刷盘策略
        1. 5.1.1 复制策略
        2. 5.1.2 刷盘策略
      2. 5.2 Broker集群模式
        1. 5.2.1 单Master
        2. 5.2.2 多Master
        3. 5.2.3 多Master多Slave模式-异步复制
        4. 5.2.4 多Master多Slave模式-同步双写
        5. 5.2.5 最佳实践
    6. 6、磁盘阵列RAID(补充)
    7. 7、Broker集群搭建实践
      1. 7.1 集群架构
      2. 7.2 克隆生成rocketmqOS1
      3. 7.3 修改rocketmqOS1配置文件
      4. 7.4 克隆生成rocketmqOS2
      5. 7.5 修改rocketmqOS2配置文件
      6. 7.6 启动服务器
    8. 8、mqadmin命令
      1. 8.1 修改bin/tools.sh
      2. 8.2 运行mqadmin
      3. 8.3 该命令的官网详解
  3. 第 3 章 RocketMQ工作原理
    1. 1、消息的生产
      1. 1.1 消息的生产过程
      2. 1.2 Queue选择算法
        1. 1.2.1 轮询算法(Round Robin)
        2. 1.2.2 最小投递延迟算法
    2. 2、消息的存储-store目录
      1. 2.1 commitlog文件
      2. 2.2 consumequeue文件
      3. 2.3 消息的读写过程
        1. 2.3.1 消息写入
        2. 2.3.2 消息拉取
        3. 2.3.3 性能方面
      4. 2.4 与Kafka的对比
    3. 3、indexFile
      1. 3.1 索引条目结构
      2. 3.2 indexFile的创建
      3. 3.3 查询流程
    4. 4、消息的消费
      1. 4.1 获取消费类型
        1. 4.1.1 基于Pull的消费类型
        2. 4.1.2 基于Push的消费类型
        3. 4.1.3 两种消费类型对比
      2. 4.2 消费模式
        1. 4.2.1 广播消费
        2. 4.2.2 集群消费
        3. 4.2.3 消息进度保存
      3. 4.3 Rebalance机制
        1. 4.3.1 什么是Rebalance
        2. 4.3.2 Rebalance限制
        3. 4.3.3 Rebalance危害
        4. 4.3.4 Rebalance产生的原因
        5. 4.3.5 Rebalance过程
        6. 4.3.6 与Kafka对比
      4. 4.4 Queue分配算法
        1. 4.4.1 平均分配策略
        2. 4.4.2 环形平均策略
        3. 4.4.3 一致性hash策略
        4. 4.4.4 同机房策略
      5. 4.5 至少一次原则
    5. 5、订阅关系的一致性
      1. 5.1 正确订阅关系
      2. 5.2 错误订阅关系
        1. 5.2.1 订阅了不同Topic
        2. 5.2.2 订阅了不同Tag
        3. 5.2.3 订阅了不同数量的Topic
    6. 6、offset管理
      1. 6.1 offset本地管理模式
      2. 6.2 offset远程管理模式
      3. 6.3 offset用途
      4. 6.4 重试队列
      5. 6.5 offset的同步提交与异步提交
    7. 7、消费幂等
      1. 7.1 什么是消费幂等
      2. 7.2 消息重复的场景分析
        1. 7.2.1 发送时消息重复
        2. 7.2.2 消费时消息重复
        3. 7.2.3 Rebalance时消息重复
      3. 7.3 通用解决方案
        1. 7.3.1 原理-两要素
        2. 7.3.2 解决方案
        3. 7.3.3 解决方案举例
      4. 7.4 消费幂等的实现
    8. 8、消息堆积与消费延迟
      1. 8.1 概念
      2. 8.2 产生原因分析
        1. 8.2.1 消息拉取
        2. 8.2.2 消息消费
        3. 8.2.3 结论
      3. 8.3 消费耗时
      4. 8.4 消费并发度
      5. 8.5 单机线程数计算
      6. 8.6 如何避免
        1. 8.6.1 梳理消息的消费耗时
        2. 8.6.2 设置消费并发度
    9. 9、消息的清理
  4. 第 4 章 RocketMQ应用
    1. 1、普通消息
      1. 1.1 消息发送分类
        1. 1.1.1 同步发送消息
        2. 1.1.2 异步发送消息
        3. 1.1.3 单向发送消息
      2. 1.2 普通消息代码举例
        1. 1.2.1 创建工程
        2. 1.2.2 定义同步消息发送生产者
        3. 1.2.3 定义异步消息发送生产者
        4. 1.2.4 定义单向消息发送生产者
        5. 1.2.5 定义消息消费者
    2. 2、顺序消息
      1. 2.1 什么是顺序消息
      2. 2.2 为什么需要顺序消息
      3. 2.3 有序性分类
        1. 2.3.1 全局有序
        2. 2.3.2 分区有序
      4. 2.4 顺序消息代码举例
    3. 3、延时消息
      1. 3.1 什么是延时消息
      2. 3.2 延时等级
      3. 3.3 延时消息实现原理
        1. 3.3.1 修改消息
        2. 3.3.2 投递延时消息
        3. 3.3.3 将消息重新写入commitlog
      4. 3.4 延时消息代码举例
    4. 4、事务消息
      1. 4.1 问题引入
      2. 4.2 解决思路
      3. 4.3 基础
        1. 4.3.1 分布式事务
        2. 4.3.2 事务消息
        3. 4.3.3 半事务消息
        4. 4.3.4 本地事务状态
        5. 4.3.5 消息回查
        6. 4.3.6 RocketMQ中的消息回查设置
      4. 4.4 XA模式三剑客
      5. 4.5 XA模式架构
      6. 4.6 注意
      7. 4.7 事务消息代码举例
    5. 5、批量消息
      1. 5.1 批量发送消息
      2. 5.2 批量消费消息
      3. 5.3 批量消息代码举例
    6. 6、消息过滤
      1. 6.1 Tag过滤
      2. 6.2 SQL过滤
      3. 6.3 代码举例
    7. 7、消息发送重试机制
      1. 7.1 说明
      2. 7.2 同步发送失败策略
      3. 7.3 异步发送失败策略
      4. 7.4 消息刷盘失败策略
    8. 8、消息消费重试机制
      1. 8.1 顺序消息的消费重试
      2. 8.2 无序消息的消费重试
      3. 8.3 消费重试次数与间隔
      4. 8.4 重试队列
      5. 8.5 消费重试配置方式
      6. 8.6 消费不重试配置方式
    9. 9、死信队列
      1. 9.1 什么是死信队列
      2. 9.2 死信队列的特征
      3. 9.3 死信消息的处理
  5. 第5章 Java集成RocketMQ
    1. 1、ChatGPT 给的答案
    2. 2、Java连接RocketMQ
      1. 2.1 搭建Maven项目
      2. 2.2 生产者发送消息
      3. 2.3 消费者消费消息
    3. 3、SpringBoot集成RocketMQ
      1. 3.1 添加依赖
      2. 3.2 yaml配置
      3. 3.3 创建消费者
      4. 3.4 发送消息
    4. 4、RocketMQ服务中各端口号说明
Copyright © 2021 - present 虾壳
搜索
数据库加载中