apache-rocketmq 学习笔记

apache-rocketmq 学习笔记

环境准备

  • 本文使用的机器为 centos7
  • maven 版本为 3.6.1
  • jdk 版本 1.8.0_11

RocketMq 概念解读

  • Producer:消息生产者
  • Producer Group:消息生产者组,发送同类消息的一个消息生产组
  • Consumer:消费者
  • Consumer Group:消费同类消息的多个实例
  • Tag:标签,子主题(二级分类)对topic的进一步细化,用于区分同一个主题下的不同业务的消息
  • Topic:主题, 如订单类消息,queue是消息的物理管理单位,而topic是逻辑管理单位。一个topic下可以有多个queue,默认自动创建是4个,手动创建是8个
  • Message:消息,每个message必须指定一个topic
  • Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
  • Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现、路由、元数据信息,可以多个部署,互相独立(比zookeeper更轻量)
  • Offset: 偏移量,可以理解为消息进度
  • commit log: 消息存储会写在Commit log文件里面
message对象解读
  • topic: 主题名称
  • tag: 标签,用于过滤
  • key: 消息唯一标示,可以是业务字段组合
  • body: 消息体,字节数组
不同架构的rocketmq对比
  • 单节点。优点是,本地开发测试,配置简单,同步刷盘消息一条都不会丢。缺点是不可靠,如果宕机,会导致服务不可用
  • 主从(异步、同步双写) : 优点,同步双写消息不丢失, 异步复制存在少量丢失 ,主节点宕机,从节点可以对外提供消息的消费,但是不支持写入。缺点是主备有短暂消息延迟,毫秒级,目前不支持自动主从切换,需要脚本或者其他程序进行检测然后进行停止broker,重启让从节点成为主节点。
  • 双主。配置简单, 异步刷盘丢失少量消息。缺点是master机器宕机期间,未被消费的消息在机器恢复之前不可消费,实时性会受到影响。
  • 双主双从,多主多从模式(异步复制)。优点是磁盘损坏,消息丢失的非常少,消息实时性不会受影响,Master 宕机后,消费者仍然可以从Slave消费。缺点是主备有短暂消息延迟,毫秒级,如果Master宕机,磁盘损坏情况,会丢失少量消息。
  • 双主双从,多主多从模式(同步双写)。优点:同步双写方式,主备都写成功,向应用才返回成功,服务可用性与数据可用性都非常高。缺点:性能比异步复制模式略低,主宕机后,备机不能自动切换为主机。
消息复制机制

消息复制指的是从节点以什么样的方式同步主节点的消息。

同步复制,则表示,生产者发送消息到broker master节点,需要等slave节点将数据同步到节点后,才告诉生产者消息发送成功。这种就性能稍低。

异步复制,表示,生产者将消息发送到 broker master节点后,broker立马响应消息发送成功。slave 复制 master的消息是异步完成的。 因此这种方式性能稍高。但是也存在一定的风险。例如,消息发送到master返回成功后,在消息复制过程中,master宕机了,这时slave虽然可以提供消费,但是这条还未被复制到slave 的消息就丢失了。

消息持久化机制

消息持久化的意思是防止服务器重启或者完全宕机导致消息丢失采取的一种措施,例如将消息持久化到磁盘,当broker重启时不至于消息丢失。

同步持久化。意思是消息发送到服务端broker,收到消息后,要讲消息持久化到磁盘后,才响应客户端消息发送成功。此方式数据安全性高,但是性能比较低。

异步持久化。指的是消息到达服务端broker后,立马响应客户端消息发送成功。消息持久化的过程是异步完成的。这种方式性能比较高。但是存在风险。如果消息在持久化的过程中,此时broker突然宕机,就会导致消息丢失。

花式搭建 rocketmq

通用流程
  1. 下载 传送门自选版本。本文使用的是当前最新版本4.7.0,对应的包为 rocketmq-all-4.7.0-source-release.zip
  2. jdk,以及maven的安装过程就不在此赘述
  3. 解压
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值