2. 开始使用

大多数 Service Broker 应用程序在 Open Service Broker API 端点之外实现 API 或 Web UI 端点。 这些附加终端节点可能提供有关应用程序的信息、提供控制面板 UI 或提供对应用程序行为的控制。 开发人员可以使用 Spring WebFluxSpring MVC 实现这些附加端点。spring-doc.cn

虽然 spring-cloud-open-service-broker 在其 API 中使用反应式返回类型,但同时支持阻塞 Web 堆栈(例如 tomcat/jetty using )或非阻塞 Web 堆栈(例如 netty/undertow using )。请参阅 modules 和 中相应的验收测试。spring-boot-starter-webspring-boot-starter-webfluxspring-cloud-open-service-broker-acceptance-webmvcspring-cloud-open-service-broker-acceptance-webfluxspring-doc.cn

Spring Cloud Open Service Broker Starters不包括对 Spring WebFlux 或 Spring MVC 的传递依赖项。 需要 Spring Boot Web Starters才能激活自动配置。

2.1. Maven 依赖项

要在 Spring Web 应用程序中使用 Spring Cloud Open Service Broker,请添加Starters,如下所示:spring-doc.cn

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-open-service-broker</artifactId>
            <version>${version}</version>
        </dependency>
    </dependencies>

2.2. Gradle 依赖项

要在 Spring Web 应用程序中使用 Spring Cloud Open Service Broker,请添加Starters,如下所示:spring-doc.cn

    dependencies {
        api 'org.springframework.cloud:spring-cloud-starter-open-service-broker:${version}'
    }

2.3. 配置 Service Broker

请参阅 Spring Boot 文档以开始构建 Spring Boot 应用程序。spring-doc.cn

该框架提供了实现 Service Broker 所需的大多数组件的默认实现。 在 Spring Boot 方式中,您可以通过提供自己的 Spring bean 实现来覆盖默认行为,并且框架会从其默认值退出。spring-doc.cn

首先,在 Service Broker 的主应用程序类上使用注释,如下所示:@SpringBootApplicationspring-doc.cn

    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }

这将触发包含默认配置。spring-doc.cn

2.4. 使用唯一的平台 ID

对 Service Broker 的每个请求都能够接收 through 一个 path 变量。 这允许 Service Broker 检测它已注册到的平台的身份,如 Cloud Foundry 文档中所述。platformInstanceIdspring-doc.cn

例如,操作员可以将 Service Broker 注册到一个 CF 平台实例,如下所示:spring-doc.cn

$ cf create-service-broker mybroker username password https://mybroker.app.local/east

操作员还可以将同一 Service Broker 注册到另一个 CF 平台实例,如下所示:spring-doc.cn

$ cf create-service-broker mybroker username password https://mybroker.app.local/west

然后,代理可能会期望请求发送到以下路径,其中请求对象中的字段包含值 “east” 或 “west”:platformInstanceIdspring-doc.cn

- https://username:[email protected]/east/v2/catalog
- https://username:[email protected]/west/v2/catalog

2.5. 自定义 Service Broker 路径

有时,自定义 Service Broker 路径的前缀非常有用。 例如,您的应用程序可能出于其他目的为冲突的终端节点提供服务。 您可以使用该属性更改代理路径的前缀,如下所示:spring.cloud.openservicebroker.base-pathspring-doc.cn

spring.cloud.openservicebroker.base-path=/broker

前面的示例将 endpoint 从 更改为 (例如 )。application.properties//broker//broker/v2/catalogspring-doc.cn