我正在阅读 Cloud Foundry 中 Side Car 和 Multi Process Application 的概念。
- https://docs.cloudfoundry.org/devguide/multiple-processes.html
- https://docs.cloudfoundry.org/devguide/sidecars.html
我有几个我自己无法弄清楚的问题。
Q1:何时使用带有 Sidecar 的 CF 应用程序与何时使用带有进程的 CF 应用程序
sidecar
我知道vs之间的主要区别multiple process application
与容器有关。Sidecar 进程在同一个容器中运行,而对于多进程应用程序,它们都在单独的容器中运行。
我无法弄清楚,我们应该在哪些场景中使用sidecar
与我们可以在哪些场景中使用multiple process application
Q2:不同工艺的不同工艺
在一个应用程序中multiple processes
,如果我想以 2 种不同的技术运行 2 个进程(Java 中的一个进程,Go 中的另一个进程 / 其他任何进程),该怎么做?当我看到buildpack
配置与.application
而不是process
. 所以我的印象好像只有所有进程必须采用相同的技术(或者我们可以在这里提供多个构建包?)。
manifest.yml
这是我正在使用的示例:
applications:
- name: multi-process1
disk_quota: 1G
path: target/SampleApp-1.jar
instances: 1
memory: 2G
buildpacks:
- java_buildpack
env:
CONFIG_SERVER_PORT: 8080
processes:
- type: 'task'
command: '$PWD/.java-buildpack/open_jdk_jre/bin/java -jar $PWD/BOOT-INF/lib/mycustomlogger-1.jar'
memory: 512MB
instances: 1
health_check:
type: http
- type: 'sampleProcess2'
command: '$PWD/.java-buildpack/open_jdk_jre/bin/java -jar $PWD/BOOT-INF/lib/mycustomlogger-1.jar'
memory: 512MB
instances: 1
health_check:
type: http
- type: 'web'
#command: '$PWD/.java-buildpack/open_jdk_jre/bin/java $PWD/BOOT-INF/classes/com/example/SampleApp'
memory: 1G
health_check:
type: http
Q3:交互过程
在这种情况下,一个进程如何与应用程序中的其他进程调用/交谈/交互。这里有哪些可用选项?我找不到任何演示应用程序中多个交互过程的示例,任何示例都会非常有帮助。
Q4:多目标应用程序与多进程应用程序之间的区别
我遇到了一个名为Multi Target Application
,参考的概念:https ://www.cloudfoundry.org/blog/accelerating-deployment-distributed-cloud-applications/
我在标准 Cloud Foundry 中没有发现这种可能性,但我觉得它可能与 Multi Process 应用程序“相似”(因为它们在独立容器上运行并且不会相互影响)。我的问题是:
Multi Target Application
vs 和有什么不一样Multi Process Application
?- 构建多目标应用程序的基本 Can Foundry 概念是什么?
任何指导将不胜感激。