我的调度程序从执行者那里获得重复的终端状态更新。我注意到,这主要发生在调度程序从许多执行者那里获得大量状态更新时。我试着寻找可能的原因,但什么也找不到。梅索斯的主人应该给奴隶发一个ack吗?更具体地说,调度器中的statusupdate方法会被多次调用,以从执行器获得完全相同的状态更新。
xiozqbni1#
mesos承诺按照顺序至少向framework调度器发送一次状态更新。这意味着从属服务器有一个等待状态更新的队列,并且将继续发送最后一个未确认的状态更新,直到它从框架调度器接收到确认为止。这应该由schedulerdriver自动完成,但是如果您有许多执行者的大量更新,那么在schedulerdriver有机会发送特定ack之前,从属服务器可能已经重新发送了状态更新。您的调度程序应该准备好处理重复的状态更新,因为总是有可能ack没有到达从属服务器。如果主机在转发ack之前发生故障,或者ack消息不知怎么掉到了地板上,就会发生这种情况。
1条答案
按热度按时间xiozqbni1#
mesos承诺按照顺序至少向framework调度器发送一次状态更新。这意味着从属服务器有一个等待状态更新的队列,并且将继续发送最后一个未确认的状态更新,直到它从框架调度器接收到确认为止。这应该由schedulerdriver自动完成,但是如果您有许多执行者的大量更新,那么在schedulerdriver有机会发送特定ack之前,从属服务器可能已经重新发送了状态更新。
您的调度程序应该准备好处理重复的状态更新,因为总是有可能ack没有到达从属服务器。如果主机在转发ack之前发生故障,或者ack消息不知怎么掉到了地板上,就会发生这种情况。