Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Pivotal Cloud Foundry-托管服务与用户定义服务_Java_Spring Boot_Cloud Foundry - Fatal编程技术网

Java Pivotal Cloud Foundry-托管服务与用户定义服务

Java Pivotal Cloud Foundry-托管服务与用户定义服务,java,spring-boot,cloud-foundry,Java,Spring Boot,Cloud Foundry,在过去的2-3个月里,我一直在使用CloudFoundry,遇到了用户定义和管理的服务。我的理解是,如果托管服务伴随着所需的实现if service broker,如果是用户定义的服务,则定义服务的人必须负责实现。我想了解使用托管/用户定义服务比在应用程序中定义连接细节(或在属性文件中外部化)有什么好处我认为使用服务绑定方法的总体优势在于,应用程序不必为其将要部署到的每个可能的环境拥有多个配置文件 具体地说,如果您有开发、测试、阶段和产品环境,您可能会有一组反映每个环境的自定义URL/IP/Po

在过去的2-3个月里,我一直在使用CloudFoundry,遇到了用户定义和管理的服务。我的理解是,如果托管服务伴随着所需的实现if service broker,如果是用户定义的服务,则定义服务的人必须负责实现。我想了解使用托管/用户定义服务比在应用程序中定义连接细节(或在属性文件中外部化)有什么好处

我认为使用服务绑定方法的总体优势在于,应用程序不必为其将要部署到的每个可能的环境拥有多个配置文件

具体地说,如果您有开发、测试、阶段和产品环境,您可能会有一组反映每个环境的自定义URL/IP/Ports/credentials的配置。您还需要一些方法来触发正确环境配置的使用。在Spring引导方法中,通常使用Spring概要文件来定义和激活这些配置。但是,这通常意味着您的应用程序提前绑定了所有必需的配置文件配置

使用Cloud Foundry,连接/服务绑定细节通过部署的云平台本身注入。这意味着您只需要定义一个“云”配置文件,它将适用于您必须支持的所有环境

这种方法有几个好处:

  • 您可以建立新的环境,而不必重建/重新配置应用程序本身。例如,如果短期内需要Test2,则可以轻松创建和定义新的空间和服务绑定,而无需重新构建应用程序。从技术上讲,您可以通过其他方式实现这一点——正如您所建议的那样,将配置外部化。我对CF的理解是,这并不是一个真正受鼓励的做法(除非您将所有内容外部化为独立的环境变量,否则可能不容易实现)

  • 您不必在应用程序配置中存储凭据。这可以被认为是一种安全优势,因为应用程序开发人员永远不必知道他们绑定到本地环境之外的任何服务的连接细节。这对你来说可能重要,也可能不重要

  • 您可能能够在不同的环境中使用不同的支持服务实现(可能是为了避免非prod环境中的高许可成本?)。我不喜欢这种方法,所以我并不认为它有什么好处

希望更多接触Cloud Foundry的其他人能够加入进来,如果我还缺少其他潜在的好处的话


另外,我将更仔细地研究这个项目,看看您是否可以通过该方法获得任何其他好处。

我相信使用服务绑定方法的总体优势是,应用程序不必为其将部署到的每个可能的环境都有多个配置文件

具体地说,如果您有开发、测试、阶段和产品环境,您可能会有一组反映每个环境的自定义URL/IP/Ports/credentials的配置。您还需要一些方法来触发正确环境配置的使用。在Spring引导方法中,通常使用Spring概要文件来定义和激活这些配置。但是,这通常意味着您的应用程序提前绑定了所有必需的配置文件配置

使用Cloud Foundry,连接/服务绑定细节通过部署的云平台本身注入。这意味着您只需要定义一个“云”配置文件,它将适用于您必须支持的所有环境

这种方法有几个好处:

  • 您可以建立新的环境,而不必重建/重新配置应用程序本身。例如,如果短期内需要Test2,则可以轻松创建和定义新的空间和服务绑定,而无需重新构建应用程序。从技术上讲,您可以通过其他方式实现这一点——正如您所建议的那样,将配置外部化。我对CF的理解是,这并不是一个真正受鼓励的做法(除非您将所有内容外部化为独立的环境变量,否则可能不容易实现)

  • 您不必在应用程序配置中存储凭据。这可以被认为是一种安全优势,因为应用程序开发人员永远不必知道他们绑定到本地环境之外的任何服务的连接细节。这对你来说可能重要,也可能不重要

  • 您可能能够在不同的环境中使用不同的支持服务实现(可能是为了避免非prod环境中的高许可成本?)。我不喜欢这种方法,所以我并不认为它有什么好处

希望更多接触Cloud Foundry的其他人能够加入进来,如果我还缺少其他潜在的好处的话


另外,我会更仔细地看一下这个项目,看看你是否能从这个方法中获得任何额外的好处。

谢谢Shawn!如果托管服务是一个支持数据库(如MySQL)的服务,它是否也会处理连接池等问题?否(至少在我的经验中是这样)。您的应用程序仍然负责配置和管理连接池。服务绑定与您可能使用的JEE容器资源并不完全相似。谢谢Shawn!如果托管服务是一个支持数据库(如MySQL)的服务,它是否也会处理连接池等问题?否(至少在我的经验中是这样)。您的应用程序仍然负责配置和管理连接池。服务绑定不可用