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总偏移量

 

 

复制代码

 

posted @   花心大萝卜li  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示