[英]Why do Spring Cloud Netflix applications deployed on Docker containers require explicitly setting eureka.instance.hostname?
[英]Spring Cloud Netflix apps running on Docker are killed by the container why?
我正在測試一些Spring Cloud Netflix微服務,它們在Windows上作為單獨的Docker容器運行。
其中有很多,十個或更多。 關鍵是,在運行其中一些7、8 ...之后,應用程序的性能開始下降,並且某些容器被殺死,例如,我看到:
2017-01-24 14:05:52.165 INFO 5 --- [nfoReplicator-0] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@67b129a3: startup date [Tue Jan 24 14:05:52 GMT 2017]; root of context hierarchy
Killed
我為應用程序使用了相同的Dockerfile(它們每個都更改了ADD命令):
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD archimedes-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
我想知道是否有必要提供-Xms和-Xmx標志以強制最小/最大可用內存...
另一方面,我啟動的容器越多,應用程序的響應就越慢...但是Window的任務管理器沒有顯示CPU / RAM耗盡。 也許我必須調整Windows Docker安裝?
可以在這里找到代碼: https : //github.com/codependent/storyteller-microservices/tree/high-availability-rxjava
要啟動每個微服務,在每個文件夾下都有一個startContainer.sh,其中顯示了我正在使用的docker命令,例如:
mvn clean package docker:build -DskipTests
docker run -e "SPRING_PROFILES_ACTIVE=archimedes1" -p 8761:8761 \
--name archimedes1 --add-host archimedes1:192.168.99.100 --add-host archimedes2:192.168.99.100 --add-host my-rabbit:192.168.99.100 \
-d storyteller/archimedes
docker run -e "SPRING_PROFILES_ACTIVE=archimedes2" -p 8762:8762 \
--name archimedes2 --add-host archimedes1:192.168.99.100 --add-host archimedes2:192.168.99.100 --add-host my-rabbit:192.168.99.100 -d storyteller/archimedes
我通過為VirtualBox分配更多內存來修復它:在設置視圖的“系統”選項卡->“基本內存4GB”中。
這樣,容器運行平穩且不會被殺死。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.