2. 入门
大多数 Service Broker 应用程序实现 Open Service Broker API 端点之外的 API 或 Web UI 端点。这些附加端点可能会提供有关应用程序的信息、提供仪表板 UI 或提供对应用程序行为的控制。开发人员可以使用 Spring WebFlux 或 Spring MVC 实现这些附加端点。
虽然 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-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 应用程序。
该框架提供了实现服务代理所需的大多数组件的默认实现。在 Spring Boot 方式中,您可以通过提供自己的 Spring Bean 实现来覆盖默认行为,并且框架会退出其默认值。
首先,请使用@SpringBootApplication
注释,如下所示:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这将触发包含默认配置。
2.4. 使用唯一的平台 ID
对 Service Broker 的每个请求都能够接收platformInstanceId
通过路径变量。这允许 Service Broker 检测已注册到的平台的身份,如 Cloud Foundry 文档中所述。
例如,操作员可以将 Service Broker 注册到一个 CF 平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/east
操作员还可以将同一服务代理注册到另一个 CF 平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/west
然后,代理可以预期对以下路径的请求,其中platformInstanceId
请求对象中的字段包含值“east”或“west”:
- 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
前面的application.properties
示例将端点从 更改为/
/broker/
(例如,/broker/v2/catalog
).