什么条件导致马拉松式的领导人选举?

yi0zb3m4  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(294)

我使用mesos和marathon来管理应用程序部署,在marathon中遇到了这个bughttps://github.com/mesosphere/marathon/issues/3783 ,也就是说,部署期间的领导人选举将示例扩展到0。领导人选举非常频繁(大约每30分钟一次),所以我经常提到这个问题。
我知道每30分钟一次是非常不规则的,因为我已经升级到马拉松1.3.10,并且在过去的2天里没有选举,但是多久一次是“正常”的呢?领导人退位/选举是在正常情况下发生的,还是我应该预期0次选举,除非有潜在问题?一位同事向我建议,“领导人选举是正常的”,“一定数量的选举是正常的,是可以预期的”。我只是不相信这一点,我很想确定。

mkh04yzy

mkh04yzy1#

这是不正常的,如果你的马拉松每30分钟改选一次。在正常情况下,马拉松不应放弃或重新选举新的领导人,直到发生维护(更新或重新启动)。尽管发生这种情况可能是由4个主要问题引起的(都会导致超时):
马拉松表现-当马拉松出现表现问题时,症状之一就是失去领导能力。这是因为马拉松在给定的时间间隔内不会对zookeeper做出React,而是被标记为“消失”。
marathon zookeeper连接问题-当网络延迟太大时(例如,zookeeper群集位于与marathon不同的dc中),则某些更新可能会超时。这将导致失去领导权。
zookeeper性能-当zookeeper有很多工作要做时,它会超时一些请求,导致马拉松失去领导。
马拉松被迫退位 DELETE /v2/leader 要解决性能问题,请执行以下步骤
分享你的马拉松。
监视-启用度量,但记住配置它们。
更新至1.3.10或更高版本。
最小化zookeeper通信延迟和对象大小。
调优jvm-添加更多堆和cpu:)。
不要使用事件总线—如果确实需要,请使用筛选的sse,并接受它是异步的,并且事件最多只传递一次。
如果需要任务生命周期事件,请使用自定义执行器。
与许多单独的部署相比,更喜欢批量部署。

相关问题