Как минимизировать объем памяти для микросервисной среды Jhipster? - PullRequest
0 голосов
/ 28 января 2019

После создания базовой среды микросервиса:

  • реестр: jhipster-registry
  • Учет и авторизация пользователей: jhipster-uaa
  • шлюз: jhipster-gateway
  • микросервис: jhipster-microservice

Недостаточно памяти, покаЯ установил переменную среды:

JAVA_OPTS = '- Xmx512m'

и мой компьютер 8Go (2Go используется системой)

jhipster-registry запускается через ./mvnw

jhipster- {uaa, gateway, microservice, foo} запускается через ./gradlew

Спасибо за вашу помощь

Примечание: ниже файла jh, используемого для генерации этих приложений

# documentation https://www.jhipster.tech/jdl/
application {
  config {
    baseName                uaa,
    packageName             fr.org.foo.uaa,
    applicationType         uaa,
    serverPort              9999,
    buildTool               gradle,
    clientPackageManager    npm,
    nativeLanguage          en,
    languages               [en,fr],
    enableTranslation       true,
    authenticationType      uaa,
    cacheProvider           hazelcast,
    databaseType            mongodb,
    devDatabaseType         mongodb,
    prodDatabaseType        mongodb,
    searchEngine            elasticsearch,
    enableHibernateCache    true,
    serviceDiscoveryType    eureka,
    testFrameworks          [gatling,cucumber],
    skipClient              true
  }
  entities Workflow, Task, Command
}


application {
  config {
    baseName                gateway,
    packageName             fr.org.foo.gateway,
    applicationType         gateway,
    serverPort              8080,
    buildTool               gradle,
    clientPackageManager    npm,
    nativeLanguage          en,
    languages               [en,fr],
    enableTranslation       true,
    authenticationType      uaa,
    uaaBaseName             "uaa",
    cacheProvider           hazelcast,
    websocket               spring-websocket,
    databaseType            mongodb,
    devDatabaseType         mongodb,
    prodDatabaseType        mongodb,
    searchEngine            elasticsearch,
    enableHibernateCache    true,
    serviceDiscoveryType    eureka,
    clientFramework         react,
    testFrameworks          [gatling,cucumber,protractor],
    jhiPrefix               jhi
  }
  entities Workflow, Task, Command
}

application {
  config {
    baseName                foo,
    packageName             fr.org.foo.foo,
    applicationType         microservice,
    serverPort              8081,
    buildTool               gradle,
    clientPackageManager    npm,
    nativeLanguage          en,
    languages               [en,fr],
    enableTranslation       true,
    authenticationType      uaa,
    uaaBaseName             "uaa",
    cacheProvider           hazelcast,
    websocket               spring-websocket,
    databaseType            mongodb,
    devDatabaseType         mongodb,
    prodDatabaseType        mongodb,
    searchEngine            elasticsearch,
    enableHibernateCache    true,
    serviceDiscoveryType    eureka,
    testFrameworks          [gatling,cucumber],
    jhiPrefix               jhi
  }
  entities Workflow, Task, Command
}

entity Workflow {
    id          Long        required,
    name        String      required minlength(3),
    description String
}

entity Task {
    id          Long        required,
    name        String      required minlength(3),
    type        TaskType    required,
    description String
}

# http://www.workflowpatterns.com/patterns/
enum TaskType {
    Sequence,
    Split,
    Synchronization,
    ExclusiveChoice,
    SimpleMerge
}

entity Command {
    id          Long        required,
    command     String      required minlength(3),
    parameters  String,
    version     String      required
}


relationship OneToMany {
    Workflow{task}  to Task,
    Task{command}   to Command
}

relationship ManyToOne {
    Task{previous}  to Task
    Task{next}      to Task
}

microservice Workflow, Task, Command with foo

1 Ответ

0 голосов
/ 28 января 2019

Вы уверены, что JAVA_OPTS используется mvnw или gradlew?

Лично я установил аргументы JVM в файле pom.xml в конфигурации плагина spring-boot-maven-plugin:

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>${spring-boot.version}</version>
         ...
      <configuration>
        <executable>true</executable>
        <fork>true</fork>
        <mainClass>${start-class}</mainClass>
        <jvmArguments>-Xms64m -Xmx128m</jvmArguments>
      </configuration>
    </plugin>

Существует аналогичная настройка для gradle

bootRun {
   jvmArgs = ["-Xms64m", "-Xmx128m"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...