2. 入门

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

虽然 spring-cloud-open-service-broker 在其 API 中使用响应式返回类型,但两者都阻止 Web 堆栈(例如 tomcat/jetty 使用spring-boot-starter-web)或非阻塞 Web 堆栈(例如 netty/undertow 使用spring-boot-starter-webflux)都支持。请参阅模块中相应的验收测试spring-cloud-open-service-broker-acceptance-webmvcspring-cloud-open-service-broker-acceptance-webflux.spring-doc.cadn.net.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.cadn.net.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.cadn.net.cn

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

2.3. 配置 Service Broker

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

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

首先,请使用@SpringBootApplication注释,如下所示:spring-doc.cadn.net.cn

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

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

2.4. 使用唯一的平台 ID

对 Service Broker 的每个请求都能够接收platformInstanceId通过路径变量。这允许 Service Broker 检测已注册到的平台的身份,如 Cloud Foundry 文档中所述。spring-doc.cadn.net.cn

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

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

操作员还可以将同一服务代理注册到另一个 CF 平台实例,如下所示:spring-doc.cadn.net.cn

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

然后,代理可以预期对以下路径的请求,其中platformInstanceId请求对象中的字段包含值“east”或“west”:spring-doc.cadn.net.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-path属性来更改代理路径的前缀,如下所示:spring-doc.cadn.net.cn

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

前面的application.properties示例将端点从 更改为//broker/(例如,/broker/v2/catalog).spring-doc.cadn.net.cn