当前位置: 首页>>代码示例>>Java>>正文


Java App.setInstances方法代码示例

本文整理汇总了Java中mesosphere.marathon.client.model.v2.App.setInstances方法的典型用法代码示例。如果您正苦于以下问题:Java App.setInstances方法的具体用法?Java App.setInstances怎么用?Java App.setInstances使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在mesosphere.marathon.client.model.v2.App的用法示例。


在下文中一共展示了App.setInstances方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createZookeeperApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
private App createZookeeperApp() {
    App app = new App();
    app.setId(this.id);
    app.setCpus(cpu);
    app.setMem(mem);
    app.setInstances(instances);
    app.setContainer(new Container());
    app.getContainer().setType(CONTAINER_TYPE);
    app.getContainer().setDocker(new Docker());
    app.getContainer().getDocker().setImage(ZK_IMAGE);
    List<HealthCheck> healthCheckList = new ArrayList<>();
    final HealthCheck hc = setHealthCheck(300, "TCP", false, 60, 20, 0, ZKSERVICE_ZKPORT);
    healthCheckList.add(hc);
    app.setHealthChecks(healthCheckList);

    return app;
}
 
开发者ID:pravega,项目名称:pravega,代码行数:18,代码来源:ZookeeperService.java

示例2: mergeApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
private void mergeApp(Customer customer, App newApp, App oldApp)
{
    // add customer id as service tag
    Map<String, String> envVariables = newApp.getEnv();
    if (envVariables.containsKey("SERVICE_TAGS")) {
        envVariables.put("SERVICE_TAGS", envVariables.get("SERVICE_TAGS") + ",customer-" + customer.getId());
    } else {
        envVariables.put("SERVICE_TAGS", "customer-" + customer.getId());
    }

    if (null == oldApp) {
        return;
    }
    // only merge settings for scaled applications
    if (null != newApp.getLabels() && newApp.getLabels().containsKey(MarathonMonitor.LABEL_SCALING_STRATEGY)) {
        return;
    }
    newApp.setInstances(oldApp.getInstances());
    newApp.setCpus(oldApp.getCpus());
    newApp.setMem(oldApp.getMem());
}
 
开发者ID:Marmelatze,项目名称:docker-controller,代码行数:22,代码来源:GroupTemplate.java

示例3: testScaleDownByCPU

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
@Test
public void testScaleDownByCPU()
{
    App app = createApp(2, 4);
    AppStatistics statistics = createStatistics(0, 32);
    app.setInstances(4);

    // 0% across 4 instances => scale down by one
    horizontal.scale(app, statistics);
    assertSame(3, app.getInstances());

    // 0% across 3 instances => scale down by one
    horizontal.scale(app, statistics);
    assertSame(2, app.getInstances());

    // 0% across 2 instances => do nothing, already min instances
    horizontal.scale(app, statistics);
    assertSame(2, app.getInstances());
}
 
开发者ID:Marmelatze,项目名称:docker-controller,代码行数:20,代码来源:HorizontalTest.java

示例4: testScaleDownByMemory

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
@Test
public void testScaleDownByMemory()
{
    App app = createApp(2, 4);
    AppStatistics statistics = createStatistics(0, 80);
    app.setInstances(4);

    // 80MB across 4 instances => scale down by one
    horizontal.scale(app, statistics);
    assertSame(3, app.getInstances());

    // 80MB across 3 instances => scale down by one
    horizontal.scale(app, statistics);
    assertSame(2, app.getInstances());

    // 80MB across 2 instances => do nothing, already min
    horizontal.scale(app, statistics);
    assertSame(2, app.getInstances());
}
 
开发者ID:Marmelatze,项目名称:docker-controller,代码行数:20,代码来源:HorizontalTest.java

示例5: generateExternalTaskRepresentation

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
@Override
protected App generateExternalTaskRepresentation(MarathonApp marathonTask) {
  App app = new App();
  String id = marathonTask.getId();
  if (!APP_NAME_VALIDATOR.matcher(id).matches()) {
    throw new IllegalArgumentException(String.format(
        "Illegal name for TOSCA node <%s>: "
            + "name for nodes of type %s must fully match regular expression %s",
        id, marathonTask.getToscaNodeName(), APP_NAME_VALIDATOR.pattern()));
  }
  app.setId(id);
  app.setCmd(marathonTask.getCmd());
  app.setConstraints(marathonTask.getConstraints());
  app.setCpus(marathonTask.getCpus());
  app.setMem(marathonTask.getMemSize());
  app.setUris(marathonTask.getUris());
  app.setLabels(marathonTask.getLabels());
  app.setEnv(new HashMap<>(marathonTask.getEnv()));
  app.setInstances(marathonTask.getInstances());
  marathonTask
      .getContainer()
      .ifPresent(mesosContainer -> app.setContainer(generateContainer(mesosContainer)));
  return app;
}
 
开发者ID:indigo-dc,项目名称:orchestrator,代码行数:25,代码来源:MarathonServiceImpl.java

示例6: createPravegaControllerApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
/**
 * To configure the controller app.
 *
 * @return App instance of marathon app
 */
private App createPravegaControllerApp() {
    App app = new App();
    app.setId(this.id);
    app.setCpus(cpu);
    app.setMem(mem);
    app.setInstances(instances);
    app.setConstraints(setConstraint("hostname", "UNIQUE"));
    app.setContainer(new Container());
    app.getContainer().setType(CONTAINER_TYPE);
    app.getContainer().setDocker(new Docker());
    app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/pravega:" + PRAVEGA_VERSION);
    String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;
    //set port
    app.setPortDefinitions(Arrays.asList(createPortDefinition(CONTROLLER_PORT), createPortDefinition(REST_PORT)));
    app.setRequirePorts(true);
    List<HealthCheck> healthCheckList = new ArrayList<HealthCheck>();
    healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, CONTROLLER_PORT));
    app.setHealthChecks(healthCheckList);
    //set env
    String controllerSystemProperties = "-Xmx512m" +
            setSystemProperty("ZK_URL", zk) +
            setSystemProperty("CONTROLLER_RPC_PUBLISHED_HOST", this.id + ".marathon.mesos") +
            setSystemProperty("CONTROLLER_RPC_PUBLISHED_PORT", String.valueOf(CONTROLLER_PORT)) +
            setSystemProperty("CONTROLLER_SERVER_PORT", String.valueOf(CONTROLLER_PORT)) +
            setSystemProperty("REST_SERVER_PORT", String.valueOf(REST_PORT)) +
            setSystemProperty("log.level", "DEBUG") +
            setSystemProperty("log.dir", "$MESOS_SANDBOX/pravegaLogs") +
            setSystemProperty("curator-default-session-timeout", String.valueOf(10 * 1000)) +
            setSystemProperty("MAX_LEASE_VALUE", String.valueOf(60 * 1000)) +
            setSystemProperty("MAX_SCALE_GRACE_PERIOD", String.valueOf(60 * 1000));
    Map<String, Object> map = new HashMap<>();
    map.put("PRAVEGA_CONTROLLER_OPTS", controllerSystemProperties);
    app.setEnv(map);
    app.setArgs(Arrays.asList("controller"));

    return app;
}
 
开发者ID:pravega,项目名称:pravega,代码行数:43,代码来源:PravegaControllerService.java

示例7: createBookieApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
private App createBookieApp() {
    App app = new App();
    app.setId(this.id);
    app.setCpus(cpu);
    app.setMem(mem);
    app.setInstances(instances);
    app.setConstraints(setConstraint("hostname", "UNIQUE"));
    app.setContainer(new Container());
    app.getContainer().setType(CONTAINER_TYPE);
    app.getContainer().setDocker(new Docker());
    app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/bookkeeper:" + PRAVEGA_VERSION);
    Collection<Volume> volumeCollection = new ArrayList<>();
    volumeCollection.add(createVolume("/bk", "mnt", "RW"));
    //TODO: add persistent volume  (see issue https://github.com/pravega/pravega/issues/639)
    app.getContainer().setVolumes(volumeCollection);
    app.setPorts(Arrays.asList(BK_PORT));
    app.setRequirePorts(true);
    //set env
    String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;
    Map<String, Object> map = new HashMap<>();
    map.put("ZK_URL", zk);
    map.put("ZK", zk);
    map.put("bookiePort", String.valueOf(BK_PORT));
    map.put("DLOG_EXTRA_OPTS", "-Xms512m");
    app.setEnv(map);
    //healthchecks
    List<HealthCheck> healthCheckList = new ArrayList<>();
    healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, BK_PORT));
    app.setHealthChecks(healthCheckList);

    return app;
}
 
开发者ID:pravega,项目名称:pravega,代码行数:33,代码来源:BookkeeperService.java

示例8: createApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
/**
 * @return an app with 64MB memory, 0.5 cpus and 1 instance
 */
protected App createApp()
{
    App app = new App();
    app.setId("/test");
    app.setMem(64.0);
    app.setCpus(0.5);
    app.setInstances(1);

    return app;
}
 
开发者ID:Marmelatze,项目名称:docker-controller,代码行数:14,代码来源:AbstractScalingTest.java

示例9: createAppDeployment

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
private void createAppDeployment(AppDeploymentRequest request, String deploymentId, Container container, Integer index) {
	App app = new App();
	app.setContainer(container);
	app.setId(deploymentId);

	Map<String, String> env = new HashMap<>();
	env.putAll(request.getDefinition().getProperties());
	for (String envVar : properties.getEnvironmentVariables()) {
		String[] strings = envVar.split("=", 2);
		Assert.isTrue(strings.length == 2, "Invalid environment variable declared: " + envVar);
		env.put(strings[0], strings[1]);
	}
	if (index != null) {
		env.put(INSTANCE_INDEX_PROPERTY_KEY, index.toString());
	}
	app.setEnv(env);

	Collection<String> uris = deduceUris(request);
	app.setUris(uris);

	Collection<Constraint> constraints = deduceConstraints(request);
	app.setConstraints(constraints.stream().map(Constraint::toStringList).collect(Collectors.toList()));

	Double cpus = deduceCpus(request);
	Double memory = deduceMemory(request);
	Integer instances = index == null ? deduceInstances(request) : 1;

	app.setCpus(cpus);
	app.setMem(memory);
	app.setInstances(instances);

	HealthCheck healthCheck = new HealthCheck();
	healthCheck.setPath("/health");
	healthCheck.setGracePeriodSeconds(300);
	app.setHealthChecks(Arrays.asList(healthCheck));

	logger.debug("Creating app with definition:\n" + app.toString());
	try {
		marathon.createApp(app);
	}
	catch (MarathonException e) {
		throw new RuntimeException(e);
	}
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-deployer-mesos,代码行数:45,代码来源:MarathonAppDeployer.java

示例10: createPravegaSegmentStoreApp

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
private App createPravegaSegmentStoreApp() {
    App app = new App();
    app.setId(this.id);
    app.setCpus(cpu);
    app.setMem(mem);
    app.setInstances(instances);
    //set constraints
    app.setConstraints(setConstraint("hostname", "UNIQUE"));
    //docker container
    app.setContainer(new Container());
    app.getContainer().setType(CONTAINER_TYPE);
    app.getContainer().setDocker(new Docker());
    //set the image and network
    app.getContainer().getDocker().setImage(IMAGE_PATH + "/nautilus/pravega:" + PRAVEGA_VERSION);
    //set port
    app.setPortDefinitions(Arrays.asList(createPortDefinition(SEGMENTSTORE_PORT)));
    app.setRequirePorts(true);
    //healthchecks
    List<HealthCheck> healthCheckList = new ArrayList<HealthCheck>();
    healthCheckList.add(setHealthCheck(300, "TCP", false, 60, 20, 0, SEGMENTSTORE_PORT));
    app.setHealthChecks(healthCheckList);
    //set env
    String zk = zkUri.getHost() + ":" + ZKSERVICE_ZKPORT;

    //Environment variables to configure SS service.
    Map<String, Object> map = new HashMap<>();
    map.put("ZK_URL", zk);
    map.put("BK_ZK_URL", zk);
    map.put("CONTROLLER_URL", conUri.toString());
    getCustomEnvVars(map, SEGMENTSTORE_EXTRA_ENV);

    //Properties set to override defaults for system tests
    String hostSystemProperties = "-Xmx1024m" +
            setSystemProperty("autoScale.muteInSeconds", "120") +
            setSystemProperty("autoScale.cooldownInSeconds", "120") +
            setSystemProperty("autoScale.cacheExpiryInSeconds", "120") +
            setSystemProperty("autoScale.cacheCleanUpInSeconds", "120") +
            setSystemProperty("log.level", "DEBUG") +
            setSystemProperty("log.dir", "$MESOS_SANDBOX/pravegaLogs") +
            setSystemProperty("curator-default-session-timeout", String.valueOf(30 * 1000)) +
            setSystemProperty("hdfs.replaceDataNodesOnFailure", "false");

    map.put("PRAVEGA_SEGMENTSTORE_OPTS", hostSystemProperties);
    app.setEnv(map);
    app.setArgs(Arrays.asList("segmentstore"));

    return app;
}
 
开发者ID:pravega,项目名称:pravega,代码行数:49,代码来源:PravegaSegmentStoreService.java

示例11: scale

import mesosphere.marathon.client.model.v2.App; //导入方法依赖的package包/类
@Override
public void scale(App app, AppStatistics statistics)
{
    Map<String, String> labels = app.getLabels();
    int maxInstances = app.getInstances();
    if (labels.containsKey(LABEL_MAX_INSTANCES)) {
        maxInstances = Integer.parseInt(labels.get(LABEL_MAX_INSTANCES));
    }
    int minInstances = app.getInstances();
    if (labels.containsKey(LABEL_MIN_INSTANCES)) {
        minInstances = Integer.parseInt(labels.get(LABEL_MIN_INSTANCES));
    }
    if (app.getInstances() == 0) {
        return;
    }

    float cpuAverage = statistics.getCpu().orElse(0F) / app.getInstances();
    float memoryAverage = statistics.getMemoryInMegabytes() / app.getInstances();

    // scaling up
    if (app.getInstances() < maxInstances) {
        if (cpuAverage > 0.9) {
            app.setInstances(app.getInstances() + 1);
            logger.info(
                "scaling app '{}' up to {} instances due to cpu usage ({}%)",
                app.getId(),
                app.getInstances(),
                cpuAverage * 100
            );

            return;
        }

        if (memoryAverage > app.getMem() * 0.9) {
            app.setInstances(app.getInstances() + 1);
            logger.info(
                "scaling app '{}' up to {} instances due to memory usage ({} MB/{} MB)",
                app.getId(),
                app.getInstances(),
                memoryAverage,
                app.getMem()
            );

            return;
        }
    }


    // scaling down
    if (app.getInstances() > minInstances) {
        // check for presence to avoid scaling down, when no value exists
        if (statistics.getCpu().isPresent() && cpuAverage < 0.1
            && statistics.getMemory().isPresent() && memoryAverage < app.getMem() * 0.5) {
            app.setInstances(app.getInstances() - 1);
            logger.info(
                "scaling app '{}' down to {} instances due to low resource usage (CPU {}%, Memory: {}/{} MB)",
                app.getId(),
                app.getInstances(),
                cpuAverage * 100,
                memoryAverage,
                app.getMem()
            );
        }
    }
}
 
开发者ID:Marmelatze,项目名称:docker-controller,代码行数:66,代码来源:Horizontal.java


注:本文中的mesosphere.marathon.client.model.v2.App.setInstances方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。