当前位置 博文首页 > 适己而忘人者,人之所弃;克己而立人者,众之所戴。:Marathon(

    适己而忘人者,人之所弃;克己而立人者,众之所戴。:Marathon(

    作者:[db:作者] 时间:2021-07-11 10:01

    Application Group

    应用程序可以嵌套到以组作为分支、以应用作为叶子的n元树中。应用程序组是用来将多个应用程序划分成可管理的集合。

    这里写图片描述

    如上图所示的结构,该定义看起来是这样的:

    {
      "id": "/product",
      "groups": [
        {
          "id": "/product/database",
          "apps": [
             { "id": "/product/mongo", ... },
             { "id": "/product/mysql", ... }
           ]
        },{
          "id": "/product/service",
          "dependencies": ["/product/database"],
          "apps": [
             { "id": "/product/rails-app", ... },
             { "id": "/product/play-app", ... }
          ]
        }
      ]
    }

    依赖

    应用程序可以有依赖。例如,一个Play应用程序可能需要一个数据库来运行。如果依赖在应用规范中被定义,那么Marathon会跟踪应用程启动,停止和升级等操作的正确顺序。

    依赖可以用应用级别和应用程序组级别来表示。如果依赖是应用程序组级别上表达,这种依赖会在改组中所有可传递应用和可传递组中被继承。

    依赖关系可以通过绝对或相对路径来表示。

    例如:如果在应用程序组的服务的定义,以下3种定义具有相同的含义:

    {
      ...
      "dependencies": ["/product/database"],
      "dependencies": ["../database"],
      "dependencies": ["specific/../../database"],
      ...
    }  

    Group Scaling

    可以对整个组进行scaling。所有可传递应用实例的数量也会相应的改变。

    PUT /v2/groups/product HTTP/1.1
    Content-Length: 21
    Host: localhost:8080
    User-Agent: HTTPie/0.7.2
    { "scaleBy": 2 }

    通过执行上面的示例操作,每个应用程序的实例数是执行前的一倍。


    参考资料:

    [1]:http://mesosphere.github.io/marathon/docs/application-groups.html

    cs