Java最全如何正确使用Spring Cloud Zookeeper,不懂来学,Javaweb知识点总结

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

image

image

image

image

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

Spring Cloud支持作为微服务架构一部分的各种产品。 例如,在阅读本章过程中,开发人员可以将Consul与作为发现工具的Eurcka进行比较,也可以将Consul与作为分布式配置工具的Spring Cloud Config进行比较,通过这种比较,可以对Spring Cloud所支持产品的丰富性有更加深刻的认识。Zookeeper是另一种解决方案,它可以作为之前列出的产品的替代选择。与Consul 一样,它可用于服务发现和分布式配置。要在项目中启用Spring Cloud Zookeeper, 应该包含用于服务发现功能的spring cloud-starter. zookeeper-discovery启动器,或用于配置服务器功能的spring-cloud-starter-zookeeper config启动器。

如何正确使用Spring Cloud Zookeeper,不懂来学

或者,开发人员也可以声明一个spring- cloud-starter zookeeper-all依赖项,它可以激活应用程序的所有功能。当然,也不要忘记包含spring boot starter-web,因为它仍然需要提供Web功能。

org. springframework. cloud

spring-cloud-starter-zookeeper-all

</ dependency>

org.springframework,boot

spring-boot-starter-web

Zookeeper连接设置是自动配置的。默认情况下,客户端会尝试连接到localhost:2181.要覆盖它,应该使用当前服务器网络地址定义spring.cloud zookeeper cnct-string属性。

spring:

cloud:

zookeeper:

connect-string: 192.168.99.100:2181

与Spring Cloud Consul-一样, Zookeeper 支持Spring Cloud Netlix提供的所有最流行的通信库,如Feign、 Ribbon、 Zuul 或Hystrix。在开始处理示例实现之前,开发人员必须先启动Zookeeper实例。

运行 Zookeeper

============

为简便起见,可以使用Docker镜像在本地计算机上启动Zookeeper.以下命令将启动Zookeeper服务器实例。由于它有快速失败(Fails Fast)机制,所以最好的方法是始终重新启动它。

docker run -d --name zookeeper --restart always -P 2181:2181 zookeeper

与先前讨论的在此领域的解决方案( 如Consul或Eureka)相比,Zookeeper 没有提供简单的方便开发人员管理的RESTful API或Web管理控制台。它有一个用于Java和C语言的官方API绑定。开发人员也可以使用它的命令行接口,它可以在Docker容器中轻松启动。以下命令将启动带有命令行客户端的容器,并可将其链接到Zookeeper服务器容器。

docker run -it --rm --link zookeeper : zookeeper zookeeper zkCli.sh - server

zookeeper

Zookeeper CLI允许执行一些有用的操作,如下所示。

口创建znode:要使用给定路径创建znode,可以使用命令create/path/data。

口获取数据:命令get/path将返回与znode关联的数据和元数据。

口观察更改的 znode:如果znode或znode的子数据发生更改,则显示通知。观察只能使用get命令设置。

口设置数据:要设置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. Spring Cloud Zookeeper可以利用一个这样的扩展来实现服务发现。Spring Cloud Zookeeper对Curator库的使用对于开发人员来说是完全透明的,所以在这里就不必做更多的介绍。

如何正确使用Spring Cloud Zookeeper,不懂来学

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.

如何正确使用Spring Cloud Zookeeper,不懂来学

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

如何正确使用Spring Cloud Zookeeper,不懂来学

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 :

最后

最后,强调几点:

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。

面试答案

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

img-CzH7Xgma-1715344621740)]

[外链图片转存中…(img-tbYL1grG-1715344621741)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值