5.4.5 协调者处理“离开组请求”


5.4.5 协调者处理“离开组请求”

消费者离开消费组有多种情况,比如消费者应用程序被关闭,或者应用程序没有关闭,但消费者不订阅主题了。消费者离开消费组,表示协调者不需要在消费组中管理这个消费者了。消费者客户端的工作如下。

(1)取消定时心跳任务,因为离开组意昧着不被协调者官:理,就不需要向协调者发送心跳了。
(2)通过消费者的协调者对象(ζon阳SUI冒
(3)重置相关的信息,比如设置成员编号为“未知编号”、重置rejolnNeeded变更为false。协调者在处理“离开组请求”时,在条件检查通过后,会首先移除心跳检测,然后将消费者从消费组中移除。“离开组请求”的处理和“加入组请求”“同步组请求”一样,都会对“消费组元数据”进行加锁,而且都涉及消费组的状态机转换。

协调者处理消费者不同请求的顺序不同,而处理不同的请求都会导致消费组状态机的变更。反过来说,当消费组状态发生变化时,协调者处理的请求类型也要根据消费组的当前状态来做决定。协调者处理消费者的“离开组请求”,也要处理消费组的所有可能状态,不过具体的处理场景有两种。第一种场景:消费组状态是“准备再平衡”。由于这个状态一定存在延迟的操作,而且还没到“等待同步”,说明延迟的操作还没有完成(一旦延迟操作完成,消费组状态一定会转为“等待同步”)。那么消费者的离开,有可能会导致延迟的操作可以完成,所以需要通过延迟缓存检查是否能完成延迟的操作。

表5-3和l表5-4对比了消费者正常加入组和l离开组的区别。这两个场景的最后一步都会检查到“延迟的操作”可以完成,但是最后消费组的成员是不同的。
在这里插入图片描述

第二种场景:消费在且状态是“稳定”或者“等待同步”。这两个状态说明要离开的消费者在这之前,已经收到“力II人组响应”或者收到“同步组响应”。消费组状态为“等待同步”,说明延迟操作已经完成,消费者已经在消费组中。主消费者在分配分区时,为消费组所有的消费者分配分区,当然也包括这个即将离开的消费者。现在消费者要离开,原本分配给它的分区应该重新分配给其他消费者,所以需要执行再平衡操作(“稳定”状态下,协调者启动一次新的再平衡操作;“等待同步”状态下,协调者继续水次的再平衡操作)。

和第一种场景示例类似,表5-5是正常的再平衡操作步骤,表5-6和表5-7是消费组状态分别是“等待同步”和“稳定”时,消费者离开消费组的步骤。后两种示例都需要执行再平衡操作。
在这里插入图片描述
在这里插入图片描述

相关推荐
<p> 课程演示环境:Windows10  </p> <p> 需要学习<span>Ubuntus</span>系统<span>YOLOv4-tiny</span>的同学请前往《<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》 <span></span> </p> <p> <span> </span> </p> <p> <span style="color:#E53333;">YOLOv4-tiny</span><span style="color:#E53333;">来了!速度大幅提升!</span><span></span> </p> <p> <span> </span> </p> <p> <span>YOLOv4-tiny</span>在<span>COCO</span>上的性能可达到:<span>40.2% AP50, 371 FPS (GTX 1080 Ti)</span>。相较于<span>YOLOv3-tiny</span>,<span>AP</span>和<span>FPS</span>的性能有巨大提升。并且,<span>YOLOv4-tiny</span>的权重文件只有<span>23MB</span>,适合在移动端、嵌入式设备、边缘计算设备上部署。<span></span> </p> <p> <span> </span> </p> <p> 本课程将手把手地教大家使用<span>labelImg</span>标注和使用<span>YOLOv4-tiny</span>训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。<span></span> </p> <p> <span> </span> </p> <p> 本课程的<span>YOLOv4-tiny</span>使用<span>AlexAB/darknet</span>,在<span>Windows10</span>系统上做项目演示。包括:<span>YOLOv4-tiny</span>的网络结构、安装<span>YOLOv4-tiny</span>、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计<span>(mAP</span>计算<span>)</span>和先验框聚类分析。 <span> </span> </p> <p> <span> </span> </p> <p> 除本课程《<span>Windows</span>版<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》外,本人推出了有关<span>YOLOv4</span>目标检测的系列课程。请持续关注该系列的其它视频课程,包括:<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:训练自己的数据集》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:人脸口罩佩戴识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:中国交通标志识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测:原理与源码解析》<span></span> </p> <p> <span> <img alt="" src="https://img-bss.csdnimg.cn/202007061503586145.jpg" /></span> </p> <p> <span><img alt="" src="https://img-bss.csdnimg.cn/202007061504169339.jpg" /><br /> </span> </p>
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页