当前位置: 代码迷 >> 综合 >> [乐优商城学习记录]DAY02 学习springcloud
  详细解决方案

[乐优商城学习记录]DAY02 学习springcloud

热度:101   发布时间:2023-09-27 02:09:52.0

使用到的组件介绍

spring-cloud全家桶

  • Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现。(服务治理,服务注册/发现)
  • Zuul:网关组件,提供智能路由,访问过滤功能
  • Ribbon:客户端负载均衡的服务调用组件(客户端负载)
  • Feign:服务调用,给予Ribbon和Hystrix的声明式服务调用组件 (声明式服务调用)
  • Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。(熔断、断路器,容错)

pom依赖说明

spring-cloud-starter-netflix-eureka-server

EurekaServer-服务注册中心依赖,Eureka Discovery-服务提供方和服务消费方。因为,对于eureka来说:服务提供方和服务消费方都属于客户端

spring-cloud-dependencie

总体依赖

spring-cloud-starter-netflix-eureka-client

客户端

注解文件说明

@SpringBootApplication//springboot启动类
@EnableEurekaServer // 声明当前springboot应用是一个eureka服务中心
@EnableDiscoveryClient//开启Eureka客户端功能

配置说明

应用名称,会在Eureka中显示
对于服务端来说的意义;;;对于客户端来说的意义# 应用名称,注册到eureka后的服务名称
spring.application.name=eureka-server
EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址
eureka.client.service-url.defaultZone=http://127.0.0.1:${server.port}/eureka
客户端注册到服务端的地址,如果是集群就写多个
eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka
服务提供者配置:服务失效时间,默认值90秒
eureka.instance.lease-expiration-duration-in-seconds=90
服务提供者配置:服务续约(renew)的间隔,默认为30秒
eureka.instance.lease-renewal-interval-in-seconds=30
服务消费者配置:获取服务列表,默认为30秒
eureka.client.registry-fetch-interval-seconds=5
注册中心配置:失效剔除,开出那些死掉的服务,扫描失效服务的间隔时间(缺省为60*1000ms)
eureka.server.eviction-interval-timer-in-ms=1000
注册中心配置:关闭自我保护模式(缺省为打开)
eureka.server.enable-self-preservation=false
服务消费者设置ribbon负载均衡的策略
service-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

原生ribbon的用法

@Bean
@LoadBalanced
public RestTemplate restTemplate() {return new RestTemplate();
}
 String baseUrl = "http://service-provider/user/" + id;User user = this.restTemplate.getForObject(baseUrl, User.class);

原理:LoadBalancerInterceptor会拦截RestTemplate
负载均衡的策略配置:
[乐优商城学习记录]DAY02 学习springcloud
封装在这几个实现类里面,可以通过配置改变service-provider.ribbon.NFLoadBalancerRuleClassName