2017-06-14 34 views
0

根據documentation,我應該可以使用deployer.time.memory屬性設置應用程序的-Xmx如何設置運行在Kubernetes上的Spring CDF應用程序的-Xmx?

我創建了以下流定義:

dataflow:>stream create --name ticktock --definition "time | log" 

我累了,我Kubernetes CDF部署它在幾個方面:

dataflow:>stream deploy --name ticktock --properties "deployer.time.memory=2048m" 

dataflow:>stream deploy --name ticktock --properties "deployer.time.local.memory=2048m" 

dataflow:>stream deploy --name ticktock --properties "deployer.time.local.javaOpts=2048m" 

後每個部署我已經運行下面的命令:

# ps aux | grep time | grep -i xmx 
# 

# docker ps 
CONTAINER ID  IMAGE            COMMAND     CREATED    STATUS    PORTS    NAMES 
52a31b764112  springcloudstream/time-source-rabbit:1.2.0.RELEASE "java -jar /maven/tim" 7 minutes ago  Up 7 minutes       k8s_ticktock-time.a4ab30e_ticktock-time-kqckg_default_53b3e059-5049-11e7-a0d4-000c29df937a_3cc76216 

爲什麼不是-Xmx設置在time應用程序?

回答

0

您上面提到的屬性是local部署者屬性,而不是kubernetes部署者屬性。對於Kubernetes部署屬性,您可以參考這裏的文檔:http://docs.spring.io/spring-cloud-dataflow-server-kubernetes/docs/current-SNAPSHOT/reference/htmlsingle/

+0

我一開始是這麼想的,但是我找不到任何設置-Xmx的章節。這是否意味着它是不可能的? – aturkovic

+0

有幾個選項可以傳遞應用程序屬性。它由'spring.cloud.deployer.kubernetes.entryPointStyle'控制,它使用'exec','shell'或'boot'作爲默認選項'exec'的選項。如果將其設置爲全局部署者屬性,則應考慮「deployer.time.memory」。或者,如果您嘗試覆蓋所有應用程序的內存,則也可以使用'spring.cloud.deployer.kubernetes.memory'作爲全局屬性。 –

+0

我已經爲所有應用程序將kubernetes內存限制設置爲2 GiB。我想從應用程序到應用程序設置-Xmx,因爲如果沒有它,docker中的java不能很好地工作。所以我不想在全球範圍內設置它。 'spring.cloud.deployer.kubernetes.entryPointStyle'是默認的,但你可以從我的問題中看到我已經通過'deployer.time.memory',但是沒有-Xmx傳遞給java進程。 – aturkovic

相關問題