Master.cpp

src/master/master.cpp是mesos master的大本营。

mesos非常依赖于libprocess,master也不例外,97-116行可以看到引用了若干libprocess的功能。

Master的各种常量定义

常量定义在src/master/constants.hpp,注释详细,以下简要说明:

Master::Master

是Master的构造函数,Master类的定义见src/master/master.hpp。

  • 288-300:初始化Master对象的一些私有变量:
    • Master对象中slaves的定义在src/master/master.hpp的1586-1705行。
  • 308:设置一个随机的UUID作为Master的ID
  • 315-319:存储Master相关信息
  • 322-348:查找并设置Hostname、IP、端口

Master::initialize

Master真正初始化的地方,是谁在调用它??---

流程

  • 375-377:输出hostname等启动时的信息
  • 379-386:IP地址不可以绑定在LOOPBACK上
  • 388-459:确定几个参数的合法性
    • agent的重新注册间隔不能小于MIN_AGENT_REREGISTER_TIMEOUT(默认是多少??????)
    • recovery_agent_removal_limit
    • 源代码必须有HAS_AUTHENTICATION,命令行参数才能指定认证相关信息
  • 462-475:加载credentials,credentials和secrets类似于用户与口令,见安全
  • 477-580:处理安全认证等
  • 582-637:ratelimits---
  • 640-688:处理roles及与之相关的weights
  • 691-696:确保命令行传递的timeout大于0
  • 699-704:初始化allocator,见allocator
  • 706-717:解析白名单、并启动白名单的watcher
  • 723:记录下启动的时刻
  • 728-838:设置Master收到的各种消息的回调函数
  • 841-1043:设置对http://masterip:masterport的HTTP请求的处理函数
  • 1050-1051:访问master的WEB主页时,路由到这个文件"master/static/index.html"
  • 1055-1057:将变量authorize初始化为一个匿名函数,该函数将针对进程masterPid,调用Master::authorizeLogAccess,参数为principal
  • 1061-1077:logdir---
  • 1079:contender初始化
  • 1083-1086:-------

results matching ""

    No results matching ""