什么条件导致马拉松领袖选举?

时间:2017-04-24 12:45:14

标签: apache-zookeeper mesos marathon mesosphere

我使用Mesos和Marathon来管理应用程序部署,并在Marathon https://github.com/mesosphere/marathon/issues/3783中遇到了这个错误,也就是说部署期间的领导者选举将实例缩减到0。选举频繁发生(大约每30分钟一次),所以我经常会遇到这个问题。

我知道每30分钟一次非常不规律,因为我升级到Marathon 1.3.10并且过去2天没有选举,但经常"正常&# 34; ?领导人退位/选举是否在正常情况下发生,或者除非存在潜在问题,否则我应该期待0次选举?一位同事向我建议,领导选举是正常的,并且#34;一定数量的选举是正常的,并且是预期的#34;我只是不相信,并且想肯定地知道。

1 个答案:

答案 0 :(得分:5)

如果您的Marathon每30分钟重新选择一次,这是不正常的。在正常情况下,Marathon不应该放弃或重新选择新的领导者,直到维护发生(更新或重新启动)。虽然如果发生这种情况,可能是由4个主要问题引起的(所有结果都是超时):

  1. 马拉松表演 - 当马拉松有性能问题时,其中一个症状就是失去了领导能力。这是因为Marathon在给定的时间间隔内没有响应Zookeeper并被标记为已经消失。
  2. Marathon Zookeeper连接问题 - 当网络延迟太高时(例如,Zookeeper群集位于与Marathon不同的DC中),则某些更新可能会超时。这将导致失去领导力。
  3. Zookeeper性能 - 当Zookeeper需要做很多工作时,会超时一些请求,导致Marathon失去领导力。
  4. 马拉松被迫DELETE /v2/leader
  5. 退位

    要解决性能问题,请按照以下here

    步骤进行操作
      
        
    1. Shard your marathon。
    2.   
    3. 监控 - 启用指标但请记住配置它们。
    4.   
    5. 更新至1.3.10或更高版本。
    6.   
    7. 最小化Zookeeper通信延迟和对象大小。
    8.   
    9. 调整JVM - 添加更多堆和CPU:)。
    10.   
    11. 不要使用事件总线 - 如果确实需要,请使用过滤后的SSE,并接受它是异步的,事件最多只能传送一次。
    12.   
    13. 如果您需要任务生命周期事件,请使用自定义执行程序。
    14.   
    15. 首选批量部署到许多个人。
    16.