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
應用程序?
我一開始是這麼想的,但是我找不到任何設置-Xmx的章節。這是否意味着它是不可能的? – aturkovic
有幾個選項可以傳遞應用程序屬性。它由'spring.cloud.deployer.kubernetes.entryPointStyle'控制,它使用'exec','shell'或'boot'作爲默認選項'exec'的選項。如果將其設置爲全局部署者屬性,則應考慮「deployer.time.memory」。或者,如果您嘗試覆蓋所有應用程序的內存,則也可以使用'spring.cloud.deployer.kubernetes.memory'作爲全局屬性。 –
我已經爲所有應用程序將kubernetes內存限制設置爲2 GiB。我想從應用程序到應用程序設置-Xmx,因爲如果沒有它,docker中的java不能很好地工作。所以我不想在全球範圍內設置它。 'spring.cloud.deployer.kubernetes.entryPointStyle'是默認的,但你可以從我的問題中看到我已經通過'deployer.time.memory',但是沒有-Xmx傳遞給java進程。 – aturkovic