1、Spring Cloud简介:
成熟的微服务框架,定位为开发人员提供工具,以快速构建分布式系统
2、Spring Cloud核心组件
服务注册中心:Spring Cloud Netflix Eureka,会启动一个Eureka Serve,把其他的组件作为Eureka Client来注册上去,这是整体的一个思路
服务调用方式:REST API、Feign、Ribbon
服务网关:Spring Cloud Netflix Zuul
熔断器:Spring Cloud Netflix Hystrix(有了这个流量大的时候也可以征程运转)
3、项目整体设计
- 项目介绍
- 接口设计
- 数据流向
- 表设计
4、Spring Cloud的每个模块实际上都是一个Spring Boot项目
5、Eureka的作用与架构
对Eureka的认知,如果服务长时间没有发送请求给Eureka,Eureka会认为该服务不再可用,将其除名,服务状态并不是一成不变。
6、引入Eureka:
服务端:
(1)引入依赖
父项目(标识spring cloud的版本依赖)和子项目(eureka)都要加依赖
(2)配置文件:端口号等等
(3)启动注解:整个Spring boot就拥有了作为Eureka Server的能力
@SpringBootApplication
@EnableEurekaServer
public class CourseServiceApplication {
public static void main(String[] args) {
SpringApplication.run(CourseServiceApplication.class, args);
}
}
客户端:
注意:使用spring-cloud-starter-netflix-eureka-client这个依赖就可以不用在启动类写@EnableEurekaClient注解
- 引入依赖
- 配置文件
== 注意:使用spring-cloud-starter-netflix-eureka-client这个依赖就可以不用在启动类写@EnableEurekaClient注解==
7、服务整合:Feign
- 引入依赖
- 配置文件
- 加入注解:@EnableFeignClients
有了这个注解,就有了调用Feign的能力
8、负载均衡策略:
- RandomRule 表示随机策略
- RoundRobinRule 表示轮询策略
- ResponseTimeWeightedRule加权,根据每一个Server的平均响应时间动态加权
- 配置不同的负载均衡方式:
Ribbon.NFLoadBalancerRuleClassName
9、网关Zuul:
网关Zuul:
- 身份校验
- 安全处理
集成Zuul:
- 把自己注册到Eureka这个注册中心
- 引入依赖
- 配置路由地址
利用网关实现过滤器