2. 开始使用
大多数 Service Broker 应用程序在 Open Service Broker API 端点之外实现 API 或 Web UI 端点。 这些附加终端节点可能提供有关应用程序的信息、提供控制面板 UI 或提供对应用程序行为的控制。 开发人员可以使用 Spring WebFlux 或 Spring MVC 实现这些附加端点。
虽然 spring-cloud-open-service-broker 在其 API 中使用反应式返回类型,但同时支持阻塞 Web 堆栈(例如 tomcat/jetty using )或非阻塞 Web 堆栈(例如 netty/undertow using )。请参阅 modules 和 中相应的验收测试。spring-boot-starter-web
spring-boot-starter-webflux
spring-cloud-open-service-broker-acceptance-webmvc
spring-cloud-open-service-broker-acceptance-webflux
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,如下所示:
<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,如下所示:
dependencies {
api 'org.springframework.cloud:spring-cloud-starter-open-service-broker:${version}'
}
2.3. 配置 Service Broker
请参阅 Spring Boot 文档以开始构建 Spring Boot 应用程序。
该框架提供了实现 Service Broker 所需的大多数组件的默认实现。 在 Spring Boot 方式中,您可以通过提供自己的 Spring bean 实现来覆盖默认行为,并且框架会从其默认值退出。
首先,在 Service Broker 的主应用程序类上使用注释,如下所示:@SpringBootApplication
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这将触发包含默认配置。
2.4. 使用唯一的平台 ID
对 Service Broker 的每个请求都能够接收 through 一个 path 变量。
这允许 Service Broker 检测它已注册到的平台的身份,如 Cloud Foundry 文档中所述。platformInstanceId
例如,操作员可以将 Service Broker 注册到一个 CF 平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/east
操作员还可以将同一 Service Broker 注册到另一个 CF 平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/west
然后,代理可能会期望请求发送到以下路径,其中请求对象中的字段包含值 “east” 或 “west”:platformInstanceId
- 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.cloud.openservicebroker.base-path=/broker
前面的示例将 endpoint 从 更改为 (例如 )。application.properties
/
/broker/
/broker/v2/catalog