Spring cloud集成了zookeeper得使用,通过服务端注册服务,客户端发现服务并使用轮询实现负载均衡,下面看具体的使用方法:
服务端的实现
1、pom文件需引入以下组件
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2、application.yml配置文件内容:指定应用名称,以便在客户端调用服务使用
spring:
application:
name: zkserver
3、main方法的实现:
@Configuration @EnableAutoConfiguration @EnableDiscoveryClient @RestController public class ZkServerApp { @RequestMapping("/user") public Map<String,Object> info() { //模拟返回一个用户信息 Map<String, Object> map = new HashMap<>(); map.put("name", "john"); map.put("age", 22); return map; } public static void main(String[] args) { SpringApplication.run(ZkServerApp.class, args); } }
4、服务端启动:
默认端口为8080,可以通过—server.port指定启动端口,在本例中启动8080,8081,8082三个服务端口提供服务调用。
客户端的实现
1、pom文件需引入以下组件
客户端的依赖引入通服务端一致即可,同上
2、application.yml配置文件内容:
指定启动端口为8888,防止端口冲突
server:
port: 8888
同时将本服务的注册发现设置为false
spring:
cloud:
zookeeper:
discovery:
register: false
3、main方法的实现:
@SpringBootApplication @RestController @EnableDiscoveryClient public class ZkClientApp { //获取服务端的应用名称 @Value("${spring.application.name:zkserver}") private String appName; @Bean @LoadBalanced RestTemplate loadBalancedRestTemplate() { return new RestTemplate(); } @Autowired LoadBalancerClient loadBalance; @Autowired private RestTemplate rt; @RequestMapping("/user") public String getUser() { System.out.println(loadBalance.choose(appName)); //打印当前调用的服务端地址 @SuppressWarnings("unchecked") Map<String, Object> user = rt.getForObject("http://" + this.appName + "/user", Map.class); return user.toString(); } public static void main(String[] args) { SpringApplication.run(ZkClientApp.class, args); } }
4、启动客户端,访问 http://localhost:8888/user,页面出现如下结果
{name=john, age=22},多次调用后控制台打印如下信息:
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8080, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8081, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8082, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8080, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8081, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8082, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8080, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8081, secure=false, metadata={}}
RibbonServer{serviceId='zkserver', server=windows10.microdone.cn:8082, secure=false, metadata={}}
完整代码地址:https://github.com/hjguang/spring-cloud
相关推荐
SpringCloud为Zookeeper提供了一个名为`spring-cloud-starter-zookeeper`的启动器,允许开发者轻松地将Zookeeper集成到SpringBoot应用中。首先,我们需要在项目中引入依赖: ```xml <groupId>org.springframework...
### 基于SpringCloud的微服务实战案例与Dubbo微服务开发基础框架解析 #### 一、SpringCloud微服务实战案例—simplemall 在现代软件开发领域,微服务架构因其高灵活性、易于扩展和独立部署等优势而备受青睐。其中,...
SpringCloud 作为一个微服务架构下的框架,提供了许多实用的功能和组件,以便于开发者快速构建微服务应用程序。然而,在分布式系统中,服务注册、服务发现、配置管理等问题都是开发者需要面临的挑战。为了解决这些...
通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于SpringCloud的微服务工程将上述技术组件逐步落地,让大家看得懂做得出学得会。 00、硅谷学习_SpringBoot_源码、课件 01.硅谷学习_SpringCloud_前提概述 ...
基于Spring Cloud的微服务架构学习项目 项目概述 本项目是一个基于Spring Cloud的微服务架构学习项目,涵盖了服务注册与发现、服务调用、服务降级、服务网关、服务配置、消息总线、分布式请求链路跟踪等多个方面...
29.尚硅谷_SpringCloud_Eureka比Zookeeper好在哪里 30.尚硅谷_SpringCloud_Ribbon是什么 31.尚硅谷_SpringCloud_Ribbon配置初步 32.尚硅谷_SpringCloud_Ribbon负载均衡 33.尚硅谷_SpringCloud_Ribbon核心组件...
Spring Cloud是基于Spring Boot实现的一系列微服务开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...
- **服务管理**:Spring Cloud提供了丰富的服务治理工具,如Hystrix(用于实现熔断、降级等)和Zuul(用于路由和服务网关)。 #### 总结 通过上述对比分析可以看出,Dubbo和Spring Cloud在服务注册与发现方面各有...
同时,平台还支持不同类型的开源服务框架接入,如dubbo、springcloud、motan等,提供了服务治理的功能,包括服务的启停、新增节点、服务权重配置、容错、降级等操作,提高了运维效率和开发效率。 权限管理系统是...
在本文中,我们将详细介绍 Spring Cloud 面试准备的相关知识点,包括 Spring Cloud 的定义、微服务架构、Spring Cloud 的优势、微服务之间的独立通讯方式、服务熔断和服务降级、Eureka 和 Zookeeper 的区别等。...
本文主要介绍了使用 SpringCloud 搭建配置中心的方法,该方法使用 Zookeeper 作为分布式服务框架来维护和监控存储的数据状态变化,从而达到基于数据的集群管理。 为什么使用 Zookeeper? Zookeeper 作为一个分布式...
Spring Cloud是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等...
3. **Spring Cloud**:基于Spring Boot实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...
- **SpringCloud**:基于SpringBoot的微服务治理框架,为SpringBoot应用提供了一站式的微服务解决方案。 6. **版本选择** 使用SpringCloud时,应根据官方推荐的兼容版本进行选择,避免因版本不匹配导致的问题。 ...
【标题】中的“毕业设计后端-基于springcloud微服务和区块链的志愿服务平台”揭示了这个项目是一个针对毕业设计的后端系统实现,它利用了SpringCloud微服务架构以及区块链技术来构建一个志愿服务管理平台。...
### 苏宁数据中台基于Spring Cloud微服务架构实践 #### 一、项目背景 ##### 1.1 为何选择Spring Cloud? 苏宁大数据中心的传统架构采用VIP负载均衡+Nginx+Spring MVC,其中大部分代码组织成单一的war包。这种模式...
Spring Cloud 由多个项目组成,包括 Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Zookeeper 等。 Boot 和 Cloud 版本选型 在选择 Spring Boot 和 Spring Cloud 的版本时,需要考虑到版本的兼容性和...
在IT行业中,Spring Cloud Alibaba是一款备受推崇的微服务框架,它为开发者提供了构建分布式系统的一系列工具和服务。这个“springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo”压缩包文件,...
- Spring Cloud Gateway 是一个基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0 的 API 网关实现。 - 添加依赖: ```xml <groupId>org.springframework.cloud <artifactId>spring-cloud-...