SpringCloud简介
微服务的实现方式之一, Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中
它将当前流行的技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,
控制总线,集群状态等,其主要涉及的主线有
netfilx:
- eureka 注册中心
- zuul 服务网关
- ribbon 负载均衡
- feign 服务调用
- Hystix 熔断器
分布式面临的问题
- 服务管理
- 如何实现自动注册和发现
- 如何实现状态监管
- 如何实现状态路由 - 服务如何实现统一配置
- 服务如何实现负载均衡
- 服务如何解决容灾问题
(跨域问题利用cors技术)
Springcloud这些是解决的主要问题
Eureka
1. 什么是eureka
eureka注册中心 相当于zookeeper 自己是一个server 服务提供者和服务消费者都是一个client 在eureka中注册,
eureka的任务是对这些client监管 ,如果有服务宕机就将此服务从Eureka注册中心中剔除 (client每隔一段时间
就会向server发送一段请求,我们称之为“心跳”,确保"我还活着")
server 与client之间的原理图
- Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
- 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
- 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
- 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态
Ribbon
负载均衡
负载均衡策略 当你的服务提供者是集群时 就需要用到ribbon
负载均衡
Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。
Hystrix
Hystrix 即熔断器
Hystrix 防止服务