Kafka与RocketMQ的形象理解
<div data-zone-id="0" data-line-index="0" data-line="true"><h3 class="heading-h3">一、先分清:两家店 “主打啥”(定位)</h3>
</div>
<div data-zone-id="0" data-line-index="1" data-line="true">
<table class="ace-table" border="1" data-ace-table-col-widths="200;200;200;200;"><colgroup><col width="200"><col width="200"><col width="200"><col width="200"></colgroup>
<tbody>
<tr>
<td>
<div data-zone-id="xr18jjuwuz0441nqvfmgvvukainm63ayr1fxc12cv0fo0f3r784stmwoga4y0ubffeszhr" data-line-index="0" data-line="true">店类型</div>
</td>
<td>
<div data-zone-id="xr18jjuwuz0441nqvfmgvvukainm63ayr1fxc17rifl6l5m9nf5lkk2alld32igyh97zqh" data-line-index="0" data-line="true">对应 MQ</div>
</td>
<td>
<div data-zone-id="xr18jjuwuz0441nqvfmgvvukainm63ayr1fxc1tlmbcfebwdkopi9g6w022w1qj2bvcik8" data-line-index="0" data-line="true">主打能力(一句话)</div>
</td>
<td>
<div data-zone-id="xr18jjuwuz0441nqvfmgvvukainm63ayr1fxc1ydwp8dm97lp389v4ylhu681zb7olqnnm" data-line-index="0" data-line="true">像生活里的啥?</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1wh08o1ofqrtjr93mc0187vlb48yhq25zxc12cv0fo0f3r784stmwoga4y0ubffeszhr" data-line-index="0" data-line="true">快递分拣站</div>
</td>
<td>
<div data-zone-id="xr1wh08o1ofqrtjr93mc0187vlb48yhq25zxc17rifl6l5m9nf5lkk2alld32igyh97zqh" data-line-index="0" data-line="true">Kafka</div>
</td>
<td>
<div data-zone-id="xr1wh08o1ofqrtjr93mc0187vlb48yhq25zxc1tlmbcfebwdkopi9g6w022w1qj2bvcik8" data-line-index="0" data-line="true">只拼 “快” 和 “多”,不管复杂服务</div>
</td>
<td>
<div data-zone-id="xr1wh08o1ofqrtjr93mc0187vlb48yhq25zxc1ydwp8dm97lp389v4ylhu681zb7olqnnm" data-line-index="0" data-line="true">双 11 快递仓:一天分 10 万件,不帮改地址</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1vrdrwnqsjgdiq6559pis2dlecsvfca2cxc12cv0fo0f3r784stmwoga4y0ubffeszhr" data-line-index="0" data-line="true">社区便利店</div>
</td>
<td>
<div data-zone-id="xr1vrdrwnqsjgdiq6559pis2dlecsvfca2cxc17rifl6l5m9nf5lkk2alld32igyh97zqh" data-line-index="0" data-line="true">RocketMQ</div>
</td>
<td>
<div data-zone-id="xr1vrdrwnqsjgdiq6559pis2dlecsvfca2cxc1tlmbcfebwdkopi9g6w022w1qj2bvcik8" data-line-index="0" data-line="true">啥都管 “全”,服务灵活</div>
</td>
<td>
<div data-zone-id="xr1vrdrwnqsjgdiq6559pis2dlecsvfca2cxc1ydwp8dm97lp389v4ylhu681zb7olqnnm" data-line-index="0" data-line="true">楼下小超市:能留货、能退差、能帮存东西</div>
</td>
</tr>
</tbody>
</table>
</div>
<div data-zone-id="0" data-line-index="2" data-line="true">
<h3 class="heading-h3">二、再懂:核心功能 “咋实现”(对应技术点)</h3>
</div>
<div data-zone-id="0" data-line-index="3" data-line="true">
<table class="ace-table" border="1" data-ace-table-col-widths="200;200;200;"><colgroup><col width="200"><col width="200"><col width="200"></colgroup>
<tbody>
<tr>
<td>
<div data-zone-id="xr16g3zj17r5q12b9iaso4rr6nitl2jmehlxc18ivg3upgd702wzo8ol078luo1lbnfqeb" data-line-index="0" data-line="true">要干的事</div>
</td>
<td>
<div data-zone-id="xr16g3zj17r5q12b9iaso4rr6nitl2jmehlxc1zjkp8c8g5tbl09yc8b7fh233fbagyzaz" data-line-index="0" data-line="true">快递分拣站(Kafka)怎么干?</div>
</td>
<td>
<div data-zone-id="xr16g3zj17r5q12b9iaso4rr6nitl2jmehlxc1pg1qsadf6i652badbbojj1eu2lltidab" data-line-index="0" data-line="true">社区便利店(RocketMQ)怎么干?</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr15g0h86l7j3bgzsy2y5sofdba92i4qahkxc18ivg3upgd702wzo8ol078luo1lbnfqeb" data-line-index="0" data-line="true">1. 分货(数据分片)</div>
</td>
<td>
<div data-zone-id="xr15g0h86l7j3bgzsy2y5sofdba92i4qahkxc1zjkp8c8g5tbl09yc8b7fh233fbagyzaz" data-line-index="0" data-line="true">划 10 条 “固定通道”(Partition),北京走 1 号、上海走 2 号,货只往后堆,不改方向</div>
</td>
<td>
<div data-zone-id="xr15g0h86l7j3bgzsy2y5sofdba92i4qahkxc1pg1qsadf6i652badbbojj1eu2lltidab" data-line-index="0" data-line="true">摆多个 “货架”(Queue),牛奶放 A 架、面包放 B 架,能随时调整货架位置</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1wdv54lctdc4entc8t05ip9ydzscloimzxc18ivg3upgd702wzo8ol078luo1lbnfqeb" data-line-index="0" data-line="true">2. 保证货不丢(高可用)</div>
</td>
<td>
<div data-zone-id="xr1wdv54lctdc4entc8t05ip9ydzscloimzxc1zjkp8c8g5tbl09yc8b7fh233fbagyzaz" data-line-index="0" data-line="true">每条通道配 2 个分拣员(ISR):A 分货、B 盯着同步,A 请假了 B 顶上</div>
</td>
<td>
<div data-zone-id="xr1wdv54lctdc4entc8t05ip9ydzscloimzxc1pg1qsadf6i652badbbojj1eu2lltidab" data-line-index="0" data-line="true">雇 3 个前台(NameServer):顾客问货在哪,前台随时指,一个请假还有俩</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1oucypk8gg0modve4vzv511rmh3srwig1xc18ivg3upgd702wzo8ol078luo1lbnfqeb" data-line-index="0" data-line="true">3. 处理特殊需求</div>
</td>
<td>
<div data-zone-id="xr1oucypk8gg0modve4vzv511rmh3srwig1xc1zjkp8c8g5tbl09yc8b7fh233fbagyzaz" data-line-index="0" data-line="true">不接!改地址、先验货都不行(牺牲灵活换速度)</div>
</td>
<td>
<div data-zone-id="xr1oucypk8gg0modve4vzv511rmh3srwig1xc1pg1qsadf6i652badbbojj1eu2lltidab" data-line-index="0" data-line="true">全接!- 留货:先贴 “预定标签”(事务消息),付钱再拿- 存东西:按 “整点格子” 存(延时队列),到点提醒- 退货:坏零食放 “暂存架”(DLQ),不扔回货架</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1h9ebuvzzwnu80mqkoojspuvi28zd985bxc18ivg3upgd702wzo8ol078luo1lbnfqeb" data-line-index="0" data-line="true">4. 人多了咋分工(并行)</div>
</td>
<td>
<div data-zone-id="xr1h9ebuvzzwnu80mqkoojspuvi28zd985bxc1zjkp8c8g5tbl09yc8b7fh233fbagyzaz" data-line-index="0" data-line="true">加分拣员就重新分通道(Rebalance),分的时候暂停一会儿</div>
</td>
<td>
<div data-zone-id="xr1h9ebuvzzwnu80mqkoojspuvi28zd985bxc1pg1qsadf6i652badbbojj1eu2lltidab" data-line-index="0" data-line="true">加店员就重新分货架(Queue 分配),不暂停,能边卖边调</div>
</td>
</tr>
</tbody>
</table>
</div>
<div data-zone-id="0" data-line-index="4" data-line="true">
<h3 class="heading-h3">三、再选:你的需求 “该找谁”(场景匹配)</h3>
</div>
<div data-zone-id="0" data-line-index="5" data-line="true">
<table class="ace-table" border="1" data-ace-table-col-widths="200;200;200;"><colgroup><col width="200"><col width="200"><col width="200"></colgroup>
<tbody>
<tr>
<td>
<div data-zone-id="xr1wpk0tjr32nytmaf638gijhkur28nph26xc1v77gs5il4wjr15fgz4grjl0q1vh4avyk" data-line-index="0" data-line="true">你的需求</div>
</td>
<td>
<div data-zone-id="xr1wpk0tjr32nytmaf638gijhkur28nph26xc1yh00pnmt2bcfr7ie3dynkru0mygqqg9p" data-line-index="0" data-line="true">选哪家?</div>
</td>
<td>
<div data-zone-id="xr1wpk0tjr32nytmaf638gijhkur28nph26xc1ykfucbnd7neqoje9en9qj6yp0epoiyi0" data-line-index="0" data-line="true">理由(一句话)</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr10gad60eqsgj5tjbzokw3iuy8hsootaw3xc1v77gs5il4wjr15fgz4grjl0q1vh4avyk" data-line-index="0" data-line="true">1. 发 10 万条日志 / 埋点数据</div>
</td>
<td>
<div data-zone-id="xr10gad60eqsgj5tjbzokw3iuy8hsootaw3xc1yh00pnmt2bcfr7ie3dynkru0mygqqg9p" data-line-index="0" data-line="true">分拣站(Kafka)</div>
</td>
<td>
<div data-zone-id="xr10gad60eqsgj5tjbzokw3iuy8hsootaw3xc1ykfucbnd7neqoje9en9qj6yp0epoiyi0" data-line-index="0" data-line="true">快!一天能扛 100 万条,晚几分钟没关系</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1663q686zvo1ogn3uey5w8mu2g9q8pfepxc1v77gs5il4wjr15fgz4grjl0q1vh4avyk" data-line-index="0" data-line="true">2. 订蛋糕:先留货、下班付钱</div>
</td>
<td>
<div data-zone-id="xr1663q686zvo1ogn3uey5w8mu2g9q8pfepxc1yh00pnmt2bcfr7ie3dynkru0mygqqg9p" data-line-index="0" data-line="true">便利店(RocketMQ)</div>
</td>
<td>
<div data-zone-id="xr1663q686zvo1ogn3uey5w8mu2g9q8pfepxc1ykfucbnd7neqoje9en9qj6yp0epoiyi0" data-line-index="0" data-line="true">能 “贴预定标签”(事务消息),不怕被别人买走</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr11q66yj4dmfnwf2s4hod0bg2kfy582o01xc1v77gs5il4wjr15fgz4grjl0q1vh4avyk" data-line-index="0" data-line="true">3. 订单超时:30 分钟后取消</div>
</td>
<td>
<div data-zone-id="xr11q66yj4dmfnwf2s4hod0bg2kfy582o01xc1yh00pnmt2bcfr7ie3dynkru0mygqqg9p" data-line-index="0" data-line="true">便利店(RocketMQ)</div>
</td>
<td>
<div data-zone-id="xr11q66yj4dmfnwf2s4hod0bg2kfy582o01xc1ykfucbnd7neqoje9en9qj6yp0epoiyi0" data-line-index="0" data-line="true">能放 “30 分钟后取” 格子(延时队列),不用盯着表</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1m0e32tsq31i69bph0z7zctd3h94i87f7xc1v77gs5il4wjr15fgz4grjl0q1vh4avyk" data-line-index="0" data-line="true">4. 发简单通知(如日志提醒)</div>
</td>
<td>
<div data-zone-id="xr1m0e32tsq31i69bph0z7zctd3h94i87f7xc1yh00pnmt2bcfr7ie3dynkru0mygqqg9p" data-line-index="0" data-line="true">随便选</div>
</td>
<td>
<div data-zone-id="xr1m0e32tsq31i69bph0z7zctd3h94i87f7xc1ykfucbnd7neqoje9en9qj6yp0epoiyi0" data-line-index="0" data-line="true">无复杂需求,看你熟悉哪家</div>
</td>
</tr>
</tbody>
</table>
</div>
<div data-zone-id="0" data-line-index="6" data-line="true">
<h3 class="heading-h3">四、最后记:避坑 “要注意啥”(关键提醒)</h3>
</div>
<div data-zone-id="0" data-line-index="7" data-line="true">
<table class="ace-table" border="1" data-ace-table-col-widths="200;200;200;200;"><colgroup><col width="200"><col width="200"><col width="200"><col width="200"></colgroup>
<tbody>
<tr>
<td>
<div data-zone-id="xr1qvvjwv0tkgh3p9j5oul86bbdmzzkcdwtxc1yrqpeuhuqqp5v1czjiqkeulkoqwh1r5a" data-line-index="0" data-line="true">店类型</div>
</td>
<td>
<div data-zone-id="xr1qvvjwv0tkgh3p9j5oul86bbdmzzkcdwtxc12wgagl5co9ywetl6w1jbdb4jza65snl8" data-line-index="0" data-line="true">对应 MQ</div>
</td>
<td>
<div data-zone-id="xr1qvvjwv0tkgh3p9j5oul86bbdmzzkcdwtxc1v99j6iput6ca8s80hto063ust99abr9w" data-line-index="0" data-line="true">最容易踩的坑(一句话)</div>
</td>
<td>
<div data-zone-id="xr1qvvjwv0tkgh3p9j5oul86bbdmzzkcdwtxc1bfd1c2jip2ugej62te6ap7l84znypwou" data-line-index="0" data-line="true">怎么躲坑?</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr17a8enok992buifh0a1p7nwam5c4zvop1xc1yrqpeuhuqqp5v1czjiqkeulkoqwh1r5a" data-line-index="0" data-line="true">快递分拣站</div>
</td>
<td>
<div data-zone-id="xr17a8enok992buifh0a1p7nwam5c4zvop1xc12wgagl5co9ywetl6w1jbdb4jza65snl8" data-line-index="0" data-line="true">Kafka</div>
</td>
<td>
<div data-zone-id="xr17a8enok992buifh0a1p7nwam5c4zvop1xc1v99j6iput6ca8s80hto063ust99abr9w" data-line-index="0" data-line="true">中途加通道(Partition)会暂停分货</div>
</td>
<td>
<div data-zone-id="xr17a8enok992buifh0a1p7nwam5c4zvop1xc1bfd1c2jip2ugej62te6ap7l84znypwou" data-line-index="0" data-line="true">提前规划好通道数,别临时加</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1w1ske999vugjy1d9p9ovvms6e3f58suaxc1yrqpeuhuqqp5v1czjiqkeulkoqwh1r5a" data-line-index="0" data-line="true">快递分拣站</div>
</td>
<td>
<div data-zone-id="xr1w1ske999vugjy1d9p9ovvms6e3f58suaxc12wgagl5co9ywetl6w1jbdb4jza65snl8" data-line-index="0" data-line="true">Kafka</div>
</td>
<td>
<div data-zone-id="xr1w1ske999vugjy1d9p9ovvms6e3f58suaxc1v99j6iput6ca8s80hto063ust99abr9w" data-line-index="0" data-line="true">分拣员全请假(ISR 只剩 1 个)会丢货</div>
</td>
<td>
<div data-zone-id="xr1w1ske999vugjy1d9p9ovvms6e3f58suaxc1bfd1c2jip2ugej62te6ap7l84znypwou" data-line-index="0" data-line="true">保证至少 2 个分拣员在岗(监控 ISR)</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr1fk75crywzd8f5yl1d4sj6ycw97eysqmhxc1yrqpeuhuqqp5v1czjiqkeulkoqwh1r5a" data-line-index="0" data-line="true">社区便利店</div>
</td>
<td>
<div data-zone-id="xr1fk75crywzd8f5yl1d4sj6ycw97eysqmhxc12wgagl5co9ywetl6w1jbdb4jza65snl8" data-line-index="0" data-line="true">RocketMQ</div>
</td>
<td>
<div data-zone-id="xr1fk75crywzd8f5yl1d4sj6ycw97eysqmhxc1v99j6iput6ca8s80hto063ust99abr9w" data-line-index="0" data-line="true">前台只雇 1 个(NameServer 单点)会没人指路</div>
</td>
<td>
<div data-zone-id="xr1fk75crywzd8f5yl1d4sj6ycw97eysqmhxc1bfd1c2jip2ugej62te6ap7l84znypwou" data-line-index="0" data-line="true">至少雇 3 个前台(部署 3 个 NameServer)</div>
</td>
</tr>
<tr>
<td>
<div data-zone-id="xr12ff4k7afol6n5gh9o49v2gr452qktqjlxc1yrqpeuhuqqp5v1czjiqkeulkoqwh1r5a" data-line-index="0" data-line="true">社区便利店</div>
</td>
<td>
<div data-zone-id="xr12ff4k7afol6n5gh9o49v2gr452qktqjlxc12wgagl5co9ywetl6w1jbdb4jza65snl8" data-line-index="0" data-line="true">RocketMQ</div>
</td>
<td>
<div data-zone-id="xr12ff4k7afol6n5gh9o49v2gr452qktqjlxc1v99j6iput6ca8s80hto063ust99abr9w" data-line-index="0" data-line="true">存东西不能改时间(延时消息改不了)</div>
</td>
<td>
<div data-zone-id="xr12ff4k7afol6n5gh9o49v2gr452qktqjlxc1bfd1c2jip2ugej62te6ap7l84znypwou" data-line-index="0" data-line="true">存之前确认好时间,改时间就重新存</div>
</td>
</tr>
</tbody>
</table>
</div>
<div data-zone-id="0" data-line-index="8" data-line="true">
<h3 class="heading-h3">五、总结:3 秒记完 “选店口诀”</h3>
</div>
<ul>
<li class="temp-li bullet1" data-line="true" data-list="bullet1">要 “多、快、简”(日志、埋点、大数据)→ 找快递分拣站(Kafka);</li>
</ul>
<ul>
<li class="temp-li bullet1" data-line="true" data-list="bullet1">要 “全、灵、稳”(订单、留货、定时任务)→ 找社区便利店(RocketMQ)。</li>
</ul>
<div data-zone-id="0" data-line-index="11" data-line="true"> </div><br><br>
来源:https://www.cnblogs.com/huangwentian/p/19307624
頁:
[1]