SpringCloud 使用
2021-01-22 03:14
标签:配置文件 stat 其他 client 一个 静态 netflix 管理 静态ip (1)配置文件 (2)Zuul (3)Eureka (4)其他项目 作用:解决子系统之间的远程调用问题,不需要维护服务之间系统调用的静态ip等。服务ABCD,在E服务Eureka中注册,ABCD之间的调用通过服务名来调用。 服务提供者: 服务消费者: 服务注册中心: eureka: RestTemplate 取代传统的httpclient进行远程调用,直接用spring封装好的工具类。 // 服务实例名 restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept, Boolean.class); 在高并发的情况下,由于单个服务的延迟,可能导致所有的请求都处于延迟状态,甚至在几秒钟就使服务处于负载饱和的状态,资源耗尽,直到不可用,最终导致这个分布式系统都不可用,这就是“雪崩”。 基于Netflix Feign 实现,整合了Ribbon与Hystrix, 除了整合这两者的强大功能之外,它还提供了声明式的服务调用(不再通过RestTemplate)。 用于权限控制等,也就是平时项目中的拦截器和过滤器。 所有的配置文件管理的地方。 SpringCloud 使用 标签:配置文件 stat 其他 client 一个 静态 netflix 管理 静态ip 原文地址:https://www.cnblogs.com/pzyin/p/12891967.htmlSpringCloud
启动顺序:
基础功能:
服务治理: Spring Cloud Eureka
ABCD称为Eureka的客户端,其中又细分为服务提供者和服务消费者,E为服务端。如果D不需要对外提供服务,只是一个单纯的消费者,是不需要注册到E中的。
[1] 服务注册
[2] 服务续约
[3] 服务下线
[1] 获取服务
[2] 服务调用
[1] 失效剔除,没有续约的服务。
[2] 自我保护,服务续约总是失败,尽可能保护这些注册信息。
client:
register-with-eureka: false # 当前微服务不注册到eureka中(消费端)
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
E服务一般进行如下配置:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
客户端负载均衡: Spring Cloud Ribbon(对应的服务端负载均衡Nginx)
private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";
服务容错保护: Spring Cloud Hystrix
[1] Fallback(失败快速返回),直接响应返回错误信息。
[2] 资源/依赖隔离(线程池隔离),不会影响其他线程的正常运行状态。声明式服务调用: Spring Cloud Feign
@FeignClient,用于服务之间的调用。API网关服务:Spring Cloud Zuul
分布式配置中心: Spring Cloud Config