写点什么

如何正确使用 Spring Cloud Zookeeper,不懂来学,java 教程下载网盘

用户头像
极客good
关注
发布于: 刚刚

口设置数据:要设置 znode 数据,可以使用命令 set/path/data。


口创建 znode 的子代:此命令与用于创建单个 znode 的命令类似。唯一的区别是子 znode 的路径将包括父路径。其命令格式为 create /parent /path /subnode /path /data。


口列出 znode 的子节点:可以使用 ls /path 命令显示它。


口检查状态:可以使用 stat /path 命令检查。状态将描述指定 znode 的元数据,如时间戳或版本号。


口删除/刪除 znode: mr /path 命令可以删除 znode 及其所有子节点。


请注意,术语 Zookeeper 节点(znode)在这里是首次出现。在存储数据时,Zookeeper 将使用树结构,其中每个节点称为 znode.这些 znode 的名称基于从根节点获取的路径。每个节点都有一个名称。可以使用从根节点开始的绝对路径访问它。此概念类似于 Consul 文件夹,并已用于在键/值存储中创建键。


服务发现


====


Apache Zookeeper 最流行的 Java 客户端库是 Apache Curator.它提供了一个 API 框架和实用程序,使 Apache Zookeeper 的应用变得更加容易。它还包括常见用例和扩展,如服务发现或 Java 8 异步 DSL. Spri


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


ng Cloud Zookeeper 可以利用一个这样的扩展来实现服务发现。Spring Cloud Zookeeper 对 Curator 库的使用对于开发人员来说是完全透明的,所以在这里就不必做更多的介绍。



1.客户端实现


客户端的用法与其他服务发现相关的 SpringCloud 项目相同。应用程序的 main 类或 @Configuration 类应使用 @EnableDiscoveryClient 注解。默认的服务名称、实例 ID 和端口分别取自 spring application.name. Spring Context ID 和 server.port.示例应用程序源代码位于 GitHub 存储库 tp:/github.com/piomin/sample-spring-cloud- zookeeper.git)中。从根本上说,除了 Spring Cloud Zookeeper Discovery 依赖项之外,它与为 Consul 引入示例系统没有什么不同。它仍然由 4 个微服务组成,这些微服务之间可以相互通信。现在,在克隆存储库之后,可以使用 mvn clean install 命令构建它。然后使用 java jar 命令运行具有活动配置文件名称的每个服务,如 java jar -spring profiles active zonel?order-service/target/order- service-1.0-SNAPSHOT.jar.



可以使用 CLI 命令 Is 和 get 查看已注册服务和实例的列表。默认情况下,Spring Cloud Zookeeper 会注册/services 根文件夹中的所有实例。它可能会被 spring?cou.ooceeper.discovery.root 属性覆盖,如图 10.9 所示。



2. Zookeeper 依赖项


Spring Cloud Zookeeper 还有一个名为 Zookeeper 依赖项(ookeeper Dependencies)的附加功能。这里的依赖项应理解为在 Zookeeper 中注册的其他应用程序,这些应用程序通过 Feign 客户端或 Spring RestTemplate 调用。可以将这些依赖项作为应用程序的属性提供。在将 spring-cloud-starter zookeeper discovery 启动器包含到项目中之后,可以通过自动配置启用该功能。当然,也可以通过将 spring.cloud.zookeeper .dependency .enabled 属性设置为 false 来禁用它。


Zookeeper 依赖项机制的配置随着 spring?cloud.zookeeper.dependencies.*属性一起提供。以下是来自 order-service 服务的 bootstrap.yml 文件的片段。此服务可与所有其他可用服务集成。


spring:



application:



name: order-service



cloud:



zookeeper :



connect-string: 192 .168.99.100:2181



dependency:



resttemplate:



enabled: false



dependencies:



account :



path: account- service



loadBalancerType: ROUND ROBIN



required: true



customer :



path: customer-service



loadBalancerType: ROUND ROBIN



required: true



product:


path: product- service



loadBalancerType: ROUND ROBIN



required: true


现在来仔细看一看前面的配置。每个被调用服务的 roo 属性是别名,然后可以由 Feign 客户端或 @LoadBalanced RestTemplate 用作服务名称。


@FeignClient (name = "customer")



public interface CustomerClient {



@GetMapping ("/wi thAccounts/ {customerId}")



Customer findByI dWithAccounts (@Pathvariable ("customerId") Long



customerId);



}


配置中的下一个非常重要的字段是路径。它设置在 Zookeeper 中注册依赖项的路径。因此,如果该属性具有的值为 customer -service,则意味着 Spring Cloud Zookeeper 会尝试在路径


/services/customer-service 下查找相应的服务 znode.还有一些其他属性可以自定义客户端的行为。其中之一是 loadBalancerType,用于应用负载均衡策略。开发人员可以在 3 种可用策略之间选择一 :ROUND_ _ROBIN、RANDOM 和 STICKY。还可以为每个服务映射将 required 属性设置为 true。现在,如果应用程序在引导期间无法检测到所需的依赖项,则无法启动。Spring Cloud Zookeeper 依赖项还允许管理 API 版本(属性 contentTypeTemplate 和 versions)和请求标头(headers 属性)。



默认情况下,Spring Cloud Zookeeper 允许 RestTemplate 与依赖项进行通信。在分支依赖项


tps:/ithub.com/piomin/sample-spring-cloud- zoeeper/ree/dependencies)提供的示例应用程序中,我们使用了 Feign 客户端而不是 @LoadBalanced RestTemplate。为了禁用该功能,应该将属性 springcloud.zokeper. dependency rsttemplate enabled 设置为 false.


分布式配置


=====


Zookeeper 的配置管理与 Spring Cloud Consul Config 的配置管理非常相似。默认情况下,所有属性源都存储在/config 文件夹(或 Zookeeper 术语中的 znode)中。如前文所述,假设在 bootstrap.yml 文件中将 spring application.name 属性设置为 order-service,并将 springprofiles.active 运行参数设置为 zonel, 那么它会尝试按以下顺序查找属性源:confg/order-service、zonel/、 config/order-service/ 、configapplication. zone1/、 config/application/。存储在命名空间中具有 configapplication 前缀的文件夹中的属性可用于使用 Zookeeper 进行分布式配置的所有应用程序。


要访问示例应用程序,需要切换到 http:/ihbco/piomin/sample -spring- cloud-zookeeper.git 存储库中的分支配置。本地 application.yml 或 botstrap.yml 文件中定义的配置如下所示,现已移至 Zookeeper.


---



spring:



profiles: zonel



server:



port: $ (PORT:8090 }

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
如何正确使用Spring Cloud Zookeeper,不懂来学,java教程下载网盘