RocketMQ
NameServer :服务的注册与发现中心 如果要启动RocketMQ 必须先启动NameServer
启动完之后 在启动borker broker会 去NameServer注册服务 里面包含
主题 地址 队列等相关信息
生产者会去向NameServer 请求路由信息 根据路由信息(主题 队列 进行 消息的发送)
消费者 也会向NameServer 请求路由信息 订阅消息
(类型zookeeper和kafka之间 注册到zookeeper中)
broker负责消息的存储 一般是以主从节点 存储数据
生产者将消息推送到broker的主节点 主节点会通过数据同步的方式 同步到从节点
消费者 也会优先从主节点读取消息 进行消费 除非主节点宕机或者繁忙 才会从
从节点中进行消费
主节点会进行数据的持久化 以及数据的copy
生产者 是消息的来源 例如订单系统 发送一条消息到broker
生产者也可以是集群模式
发送模式可以是单向的 同步确认的 异步确认的
如果broker中的主题占有多个主节点 那么生产者推送消息是按照轮询的方式来推送消息
消费者订阅主题就可以从对应的broker中拉取数据 比如物流发货 微信短信发送
消费完之后 会发送消息给主节点进行消息确认
消费者也可以进行群组订阅 一条消息 可以被多个不同的group进行消费
主题:是表示一类消息 broker可以创建很多主题
分组 : 如果是将生产者进行分组 那么生产者 发送的数据时同一类数据
消费者进行分组 如果topic是订单消息 那么消费者组1 和消费者组2 消息是完全隔离的
消息队列: 一个主题 至少有一个queue(队列) 当消息发送到topic中时 会均衡的发送到多个队列中 如果说消费者组1 中的消费者数量=quene中的数量 那么会对应消费。
虽然queue在很大程度上提升了消费的并发度 生产者生产消息后直接推送到broker中,但是消费者消费进度一般很慢 因为消费者有自己的业务逻辑 只有成功之后才能消费掉
tag 过滤性 当发送消息是一类 但是种类较多时 例如 国产手机 苹果手机 安卓手机 那么我们可以将消息打上对应的标签tag 这样我们在消费的时候可以进行筛选
比如消费者1 只消费安卓系列的手机 tag=安卓手机 才进行消费
偏移量 :如果不指定 那么就是消费者消费的偏移量 还有是broker总偏移量

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)