Comment ancrer efficacement les microservices java


Alors qu'un serveur d'applications java étendra une JVM unique pour exécuter plusieurs (micro)services, une architecture de microservices java dockerisée exécutera une JVM pour chaque microservice dockerisé. Compte tenu de plus de 20 microservices java et d'un nombre limité d'hôtes, il semble que la quantité de ressources consommées par les JVM sur chaque hôte soit énorme.

Existe-t-il un moyen efficace de gérer ce problème ? Est-il possible de régler chaque JVM pour limiter la consommation de ressources ? L'objectif est de limiter les frais généraux d'utiliser docker dans une architecture de microservices java.

Author: DouglasAdams, 2016-09-07

1 answers

Chaque copie Docker et JVM en cours d'exécution utilise de la mémoire. Normalement, avoir plusieurs JVM sur un seul nœud utiliserait la mémoire partagée, mais ce n'est pas une option avec docker.

Ce que vous pouvez faire est de réduire la taille maximale du tas de chaque JVM. Cependant, j'autoriserais au moins 1 Go par image docker en tant que surcharge plus votre taille de tas pour chaque JVM. Tout cela ressemble à beaucoup de mémoire, il ne coûte pas tellement ces jours-ci.

Disons que vous donnez à chaque JVM un tas de 2 Go et ajoutez 1 Go pour docker + JVM, vous êtes vous cherchez besoin d'un serveur de 64 Go pour exécuter 20 JVM/dockers.

 2
Author: Peter Lawrey, 2016-09-07 18:48:38