springcloud学习笔记
前段时间又重新看了一下spring-cloud的相关知识,所以写下这篇文章来记录一下学习过程,希望对大家也有所帮助。
Spring Cloud 是什么?
Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,是一套微服务治理框架。包括:服务发现、服务网关、服务路由、链路追踪等。通过引入starter可以很方便的集成其他框架。
服务注册中心 eureka-service
ereka解决的问题:服务管理、注册和发现、状态监管、动态路由;
enreka与服务之间通过心跳机制进行监控
心跳(续约):提供者定期通过http方式向eureka刷新自己的状态
服务提供者启动后向Eureka注册自己的信息(地址,提供什么服务)
服务消费者:向eureka订阅服务
整合步骤:
(1)创建eureka-service工程
要点:导入依赖、在启动类上加上@EnableEurekaServer注解、编写applicat配置文件(端口号、应用名称、EnrekaService地址)
(2)服务提供者——注册服务中心
要点:加入eureka客户端stater和Springcloud依赖管理坐标、启动类上加上@EnableDiscoveryClient、在配置文件中加上应用名称以及eureka相关配置
(3)服务消费者-注册服务中心
要点:加入eureka客户端stater和Springcloud依赖管理坐标、启动类上加上@EnableDiscoveryClient、修改配置文件加上应用名称以及eureka地址
3.实现负载均衡
在消费者的RestTemplate配置方法上加上@LoadBalanced注解,默认的是轮询;
controller中的调用方式把具体的端口号和地址修改为服务名称
原理:
LoadBalancerInterceptor类对RestTemplate请求进行拦截,通过服务id获取服务列表,通过负载均衡算法得到真正的服务地址信息,替换原来的服务id
4.熔断器(解决雪崩效应)
熔断器解决方案:线程隔离+服务降级
熔断器的三个状态:关闭状态:所有请求都可以正常访问;
打开状态:所有请求都被降级;
半开状态:打开状态5秒之后
实现步骤:
在消费者中加入熔断器的starter;开启注解 @EnableCircuitBreaker(简便写法:@SpringCloudApplication=@SpringBootApplication+@EnableDiscoveryClient+@EnableCircuitBreaker)
原方法上加上@HystrixCommand注解,指定降级方法
编写降级方法(注意:方法参数与原方法保持一致)
在配置文件中加上熔断器的相关配置
第二种方式: 在类上默认配置,通过@DefaultProperties(defaultFallback=”defaultFallBack“)统一指定降级方法
springcloud学习笔记
最新推荐文章于 2025-08-11 09:20:14 发布