|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版,请使用Spring Cloud Zookeeper 5.0.0! |
动物饲养员依赖关系
以下主题涵盖如何处理 Spring Cloud Zookeeper 的依赖:
使用 Zookeeper 依赖
Spring Cloud Zookeeper 为你的应用程序提供了依赖关系的可能性
作为属性。作为依赖,你可以理解注册的其他应用程序
在 Zookeeper 中,你希望通过 OpenFeign(一个 REST 客户端构建器)调用它,Rest模板和Web客户端通过Spring Cloud负载均衡器。
你也可以使用Zookeeper的依赖观察者功能来控制和监控 你的依赖状态。
激活Zookeeper 依赖
包括对 的依赖org.springframework.cloud:spring-cloud-starter-zookeeper-discovery使
自动配置,可以设置 Spring Cloud Zookeeper 的依赖。即使你提供
你房产中的依赖,你可以关闭这些依赖。为此,设置spring.cloud.zookeeper.dependency.enabled属性变为false(默认为true).
建立Zookeeper依赖
考虑以下依赖表示的例子:
spring.application.name: yourServiceName
spring.cloud.zookeeper:
dependencies:
newsletter:
path: /path/where/newsletter/has/registered/in/zookeeper
loadBalancerType: ROUND_ROBIN
contentTypeTemplate: application/vnd.newsletter.$version+json
version: v1
headers:
header1:
- value1
header2:
- value2
required: false
stubs: org.springframework:foo:stubs
mailing:
path: /path/where/mailing/has/registered/in/zookeeper
loadBalancerType: ROUND_ROBIN
contentTypeTemplate: application/vnd.mailing.$version+json
version: v1
required: true
接下来的几个章节会逐一讲解依赖的各个部分。根性质
名字是spring.cloud.zookeeper.dependencies.
别名
在根属性下方,你必须将每个依赖关系表示为别名。
这是由于 Spring Cloud LoadBalancer 的限制,要求应用 ID 必须放在 URL 中。
因此,你无法通过任何复杂的路径,即苏查斯/myApp/myRoute/name).
别名是你用的名字,而不是服务ID为发现客户端,装或Rest模板.
在前面的例子中,别名为通讯和邮件.
以下示例展示了通讯别名:
@FeignClient("newsletter")
public interface NewsletterService {
@RequestMapping(method = RequestMethod.GET, value = "/newsletter")
String getNewsletters();
}
路径
路径由路径YAML 属性 和 是依赖在 Zookeeper 下注册的路径。
如前节所述,Spring Cloud LoadBalancer 对 URL 进行作。
因此,该路径不符合其要求。
这就是为什么Spring Cloud Zookeeper会将别名映射到正确的路径。
负载均衡器类型
负载均衡器类型表示为负载均衡类型YAML属性。
如果你知道调用这个依赖时需要应用什么样的负载均衡策略,可以在 YAML 文件中提供,它会自动应用。 您可以选择以下负载均衡策略之一:
-
STICKY:一旦被选中,实例总是被调用。
-
随机:随机选择一个实例。
-
ROUND_ROBIN:不断迭代实例。
内容类型模板与版本
这内容类型模板和版本由内容类型模板和版本YAML属性。
如果你的API版本是内容类型你不想添加这个头部
对你们每个人的请求。另外,如果你想调用API的新版本,你也不需要
想在代码里自由移动,提升API版本。这就是为什么你可以提供内容类型模板特别$version占 位 符。该占位符将由版本YAML属性。考虑以下示例内容类型模板:
application/vnd.newsletter.$version+json
进一步考虑以下情况版本:
v1
组合内容类型模板而版本则产生一个内容类型每个请求的头部如下:
application/vnd.newsletter.v1+json
默认头部
默认的头部用头地图在YAML中。
有时,每次调用依赖都需要设置一些默认头部。不去
用代码完成,你可以在 YAML 文件中设置它们,如下示例所示头部分:
headers:
Accept:
- text/html
- application/xhtml+xml
Cache-Control:
- no-cache
那头截面结果是添加接受和缓存控制首部
HTTP请求中合适的值列表。
必需依赖
所需的依赖关系由 表示为必填YAML的房产。
如果某个依赖在应用启动时必须开启,你可以设置
这必备:真属性在 YAML 文件中。
如果应用在启动时无法本地化所需的依赖,它会抛出 例外,Spring Context 无法建立。换句话说,你的申请不能 如果所需的依赖未在Zookeeper注册,则开始。
您可以在本文后面阅读更多关于Spring Cloud动物园饲养员在位检查器的内容。
配置 Spring Cloud Zookeeper 依赖
你可以设置以下属性,以启用或禁用Zookeeper Dependencies的部分功能:
-
spring.cloud.zookeeper.dependencies: 如果你没有设置此属性,就无法使用 Zookeeper 的依赖。 -
spring.cloud.zookeeper.dependency.loadbalancer.enabled(默认启用):启用Zookeeper专用的自定义负载均衡策略,包括ZookeeperServiceInstanceListSupplier以及基于依赖的负载均衡Rest模板设置。 -
spring.cloud.zookeeper.dependency.headers.enabled(默认启用):该属性注册为伪阻挡负载均衡器客户端它会自动附加相应的头部和内容类型及其版本,如依赖配置中所示。 没有这个设置,这两个参数就不起作用。 -
spring.cloud.zookeeper.dependency.resttemplate.enabled(默认启用):启用时,该属性会修改@LoadBalanced-注释Rest模板使其传递头部和内容类型时,依赖配置中已设置的版本。 没有这个设置,这两个参数就不起作用。