图解杨开元的RocketMQ实战与原理解析-1

图解杨开元的RocketMQ实战与原理解析-1

RocketMQ总览
书中对RocketMQ中的各个角色以邮政系统为例,做了形象的比喻:
1.发信者 => Producer
2.收信者 => Consumer
3.邮局 => Broker
4.邮局协调机构 => NameServer
在此,我做一次狗尾续貂者

从邮局-Broker 说起

将一个主题(Topic)比作一个城市(杭州), 杭州有多个区(西湖区/滨江区…),一个区有多个街道(a/b…) ,一个街道里有多个邮局,一个邮局有多个为发信者办理业务的窗口

Topic = 杭州
Broker集群 = 西湖区 / 滨江区 / ...
BrokerGroup = 各街道
Broker = 各邮局 (每个街道有一个Maste邮局和多个Slave邮局)
MessageQueue = 邮局窗口
RocketMQ有一个对发信者有一个规定 : 发信者只能在Master邮局发信. 
故事开始 – part 1 oneWay方式发送
大毛给二毛发信.
大毛 找到(怎么找?下文分解) 西湖区--三墩街道--Master邮局 , 我去! 发信的人挺多啊,还好邮局有8个窗口.
大毛发现有的人很快就办完了业务,有的人却要等很久.
这时刚好1窗口没人了,大毛把信递给1窗口,工作人员说:你有3中选择,办理时间从长到短分别是:
1.你等我们系统内存档完成,我给你开存档完成的单据,你拿着存档完成的单据离开. => 同步
2.我接受你的信件,给你开一个收到的单据, 你拿着收到单据离开 => 异步
3.你把信件放进邮筒,啥单据都不要 => oneWay
大毛选择了第三种,信件扔进邮筒,转身就撤了.
part 2 异步发送
二毛收不到信件, 于是大毛不得不改变发信件策略.于是他又来到Master邮局.一来就质问说:为什么我的信件送不到?
工作人员 : 你寄信件那次,我们的邮筒被台风刮走啦!.
大毛心中一万个我尼玛,说: 那我这次要拿收到单据离开(异步)
于是1窗口给大毛开了收到单据
part 3 同步发送
二毛还是收不到信件. 大毛又来到邮局问,老子信件呢?这次丢邮筒跟我没关系吧?
工作人员: 好巧不巧,我们在把你的信件存档的时候, 又刮了台风,把你的信件刮走了.
大毛: 我尼玛.....我这次要等你们存档完成,收到你们的存档收据再走,以后我都选择这种方式邮寄信件
part 4 MasterBreak挂了
二毛依然收不到信件. 大毛又来到Master邮局, 发现邮局被台风刮走了.......
于是他来到Slave邮局, 但是Slave邮局不接受发送信件的业务.(SlaveBroker不接受消息)
大毛: 那我怎么办?
突然大毛想到自己手上有一个小册子,这个小册子上记录杭州各个区里,各个街道的邮局.
于是他又跑到另一个街道Master邮局. (同步方式的重试)
我尼玛! 这个Master邮局也被刮走了...小册子上全部Master邮局都被刮走了.
大毛还剩一个办法,去邮局协调机构,再要一个新册子,看看有没有正常工作的
part 5 邮局协调机构 – NameServer
大毛来到邮局协调机构,我擦! 这个协调机构也被刮走了. 
大毛只能拿出最后的杀手锏, 他拿出小本子,上面记录了一个url,他发送了一个http请求,获取到了最新的邮局协调机构地址.
于是他跑去这个新邮局协调机构要了一个新册子,他按照新册子上指示的Master邮局地址,找到了Master邮局,顺利的寄出了信件
注:

Producer与Break和NameServer之间都是长连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值