该版本仍在开发中,尚未被视为稳定。对于最新稳定版,请使用Spring Cloud Zookeeper 5.0.0spring-doc.cadn.net.cn

动物饲养员依赖关系

使用 Zookeeper 依赖

Spring Cloud Zookeeper 为你的应用程序提供了依赖关系的可能性 作为属性。作为依赖,你可以理解注册的其他应用程序 在 Zookeeper 中,你希望通过 OpenFeign(一个 REST 客户端构建器)调用它,Rest模板Web客户端通过Spring Cloud负载均衡器spring-doc.cadn.net.cn

你也可以使用Zookeeper的依赖观察者功能来控制和监控 你的依赖状态。spring-doc.cadn.net.cn

激活Zookeeper 依赖

包括对 的依赖org.springframework.cloud:spring-cloud-starter-zookeeper-discovery使 自动配置,可以设置 Spring Cloud Zookeeper 的依赖。即使你提供 你房产中的依赖,你可以关闭这些依赖。为此,设置spring.cloud.zookeeper.dependency.enabled属性变为false(默认为true).spring-doc.cadn.net.cn

建立Zookeeper依赖

考虑以下依赖表示的例子:spring-doc.cadn.net.cn

application.yml
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-doc.cadn.net.cn

别名

在根属性下方,你必须将每个依赖关系表示为别名。 这是由于 Spring Cloud LoadBalancer 的限制,要求应用 ID 必须放在 URL 中。 因此,你无法通过任何复杂的路径,即苏查斯/myApp/myRoute/name). 别名是你用的名字,而不是服务ID发现客户端,Rest模板.spring-doc.cadn.net.cn

在前面的例子中,别名为通讯邮件. 以下示例展示了通讯别名:spring-doc.cadn.net.cn

@FeignClient("newsletter")
public interface NewsletterService {
        @RequestMapping(method = RequestMethod.GET, value = "/newsletter")
        String getNewsletters();
}

路径

路径由路径YAML 属性 和 是依赖在 Zookeeper 下注册的路径。 如前节所述,Spring Cloud LoadBalancer 对 URL 进行作。 因此,该路径不符合其要求。 这就是为什么Spring Cloud Zookeeper会将别名映射到正确的路径。spring-doc.cadn.net.cn

负载均衡器类型

负载均衡器类型表示为负载均衡类型YAML属性。spring-doc.cadn.net.cn

如果你知道调用这个依赖时需要应用什么样的负载均衡策略,可以在 YAML 文件中提供,它会自动应用。 您可以选择以下负载均衡策略之一:spring-doc.cadn.net.cn

内容类型模板与版本

内容类型模板和版本由内容类型模板版本YAML属性。spring-doc.cadn.net.cn

如果你的API版本是内容类型你不想添加这个头部 对你们每个人的请求。另外,如果你想调用API的新版本,你也不需要 想在代码里自由移动,提升API版本。这就是为什么你可以提供内容类型模板特别$version占 位 符。该占位符将由版本YAML属性。考虑以下示例内容类型模板:spring-doc.cadn.net.cn

application/vnd.newsletter.$version+json

进一步考虑以下情况版本:spring-doc.cadn.net.cn

v1

组合内容类型模板而版本则产生一个内容类型每个请求的头部如下:spring-doc.cadn.net.cn

application/vnd.newsletter.v1+json

默认头部

默认的头部用地图在YAML中。spring-doc.cadn.net.cn

有时,每次调用依赖都需要设置一些默认头部。不去 用代码完成,你可以在 YAML 文件中设置它们,如下示例所示部分:spring-doc.cadn.net.cn

headers:
    Accept:
        - text/html
        - application/xhtml+xml
    Cache-Control:
        - no-cache

截面结果是添加接受缓存控制首部 HTTP请求中合适的值列表。spring-doc.cadn.net.cn

必需依赖

所需的依赖关系由 表示为必填YAML的房产。spring-doc.cadn.net.cn

如果某个依赖在应用启动时必须开启,你可以设置 这必备:真属性在 YAML 文件中。spring-doc.cadn.net.cn

如果应用在启动时无法本地化所需的依赖,它会抛出 例外,Spring Context 无法建立。换句话说,你的申请不能 如果所需的依赖未在Zookeeper注册,则开始。spring-doc.cadn.net.cn

您可以在本文后面阅读更多关于Spring Cloud动物园饲养员在位检查器的内容。spring-doc.cadn.net.cn

存根

你可以提供一条带有依赖存根的冒号分离路径,作为 如下例所示:spring-doc.cadn.net.cn

stubs: org.springframework:myApp:stubsspring-doc.cadn.net.cn

因为存根是默认分类器,前述示例等于 例:spring-doc.cadn.net.cn

小作品:org.springframework:myAppspring-doc.cadn.net.cn

配置 Spring Cloud Zookeeper 依赖

你可以设置以下属性,以启用或禁用Zookeeper Dependencies的部分功能:spring-doc.cadn.net.cn

  • spring.cloud.zookeeper.dependencies: 如果你没有设置此属性,就无法使用 Zookeeper 的依赖。spring-doc.cadn.net.cn

  • spring.cloud.zookeeper.dependency.loadbalancer.enabled(默认启用):启用Zookeeper专用的自定义负载均衡策略,包括ZookeeperServiceInstanceListSupplier以及基于依赖的负载均衡Rest模板设置。spring-doc.cadn.net.cn

  • spring.cloud.zookeeper.dependency.headers.enabled(默认启用):该属性注册为伪阻挡负载均衡器客户端它会自动附加相应的头部和内容类型及其版本,如依赖配置中所示。 没有这个设置,这两个参数就不起作用。spring-doc.cadn.net.cn

  • spring.cloud.zookeeper.dependency.resttemplate.enabled(默认启用):启用时,该属性会修改@LoadBalanced-注释Rest模板使其传递头部和内容类型时,依赖配置中已设置的版本。 没有这个设置,这两个参数就不起作用。spring-doc.cadn.net.cn