网站视频如何下载,广告平台推广渠道,网站建设财务分析,61源码网目录
设计思路
Zookeeper注册中心的优缺点
SpringCloudZookeeper实现微服务注册中心
第一步#xff1a;在父pom文件中指定Spring Cloud版本
第二步#xff1a;微服务pom文件中引入Spring Cloud Zookeeper注册中心依赖
第三步#xff1a; 微服务配置文件application.y…目录
设计思路
Zookeeper注册中心的优缺点
SpringCloudZookeeper实现微服务注册中心
第一步在父pom文件中指定Spring Cloud版本
第二步微服务pom文件中引入Spring Cloud Zookeeper注册中心依赖
第三步 微服务配置文件application.yml中配置zookeeper注册中心地址
第四步整合feign进行服务调用 设计思路 Zookeeper注册中心的优缺点
优点
1. 高可用性ZooKeeper是一个高可用的分布式系统可以通过配置多个服务器实例来提供容错能力。如果其中一个实例出现故障其他实例仍然可以继续提供服务。
2. 强一致性ZooKeeper保证了数据的强一致性。当一个更新操作完成时所有的服务器都将具有相同的数据视图。这使得ZooKeeper非常适合作为服务注册中心因为可以确保所有客户端看到的服务状态是一致的。
3. 实时性ZooKeeper的监视器Watcher机制允许客户端监听节点的变化。当服务提供者的状态发生变化时例如上线或下线客户端会实时收到通知。这使得服务消费者能够快速响应服务的变化从而实现动态服务发现。
缺点
性能限制ZooKeeper的性能可能不如一些专为服务注册中心设计的解决方案如nacos或Consul。尤其是在大量的读写操作或大规模集群的情况下ZooKeeper可能会遇到性能瓶颈。 SpringCloudZookeeper实现微服务注册中心
第一步在父pom文件中指定Spring Cloud版本
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.2.RELEASE/versionrelativePath/ !-- lookup parent from repository --
/parent
propertiesjava.version1.8/java.versionspring-cloud.versionHoxton.SR8/spring-cloud.version
/properties
dependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies
/dependencyManagement
注意 springboot和springcloud的版本兼容问题。
第二步微服务pom文件中引入Spring Cloud Zookeeper注册中心依赖
!-- zookeeper服务注册与发现 --
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-zookeeper-discovery/artifactIdexclusionsexclusiongroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactId/exclusion/exclusions
/dependency!-- zookeeper client --
dependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactIdversion3.8.0/version
/dependency
注意 zookeeper客户端依赖和zookeeper sever的版本兼容问题。
第三步 微服务配置文件application.yml中配置zookeeper注册中心地址
spring:cloud:zookeeper: connect-string: localhost:2181discovery:instance-host: 127.0.0.1
注册到zookeeper的服务实例元数据信息如下 注意如果address有问题会出现找不到服务的情况可以通过instance-host配置指定。
第四步整合feign进行服务调用
RequestMapping(value /findOrderByUserId/{id})
public R findOrderByUserId(PathVariable(id) Integer id) {log.info(根据userId:id查询订单信息);//feign调用 R result orderFeignService.findOrderByUserId(id);return result;
}