1.用来干什么的?
springcloud就是一个提供微服务的,能解决业务放在一台机器上无法负担庞大的访问,所有要出现很多台机器分别部署不同的服务,还要有机器负责管理服务,最基本的就是服务的调用放,消费者。
2.springcloud原理
他是基于http协议,来让机器之间互相协作,兼容各种编程语言。
3.微服务组成
注册中心 Eurake server
微服务 client
消费者 client
4.微服务调用过程
消费者,通过Discoveryclient(注册中心)实例,获取服务信息,通过http发送给微服务请求,获取返回结果。
注册中心
用来管理所有微服务,每个微服务开启后都会到注册中心这里注册自己的信息,然后注册中心管理这些信息,等消费者调用。
集群
注册中心可以有多个,互相注册自己保留的服务提供方的信息,形成集群,保证系统的高可用性。
为了保证系统的微服务系统安全稳定,有很多参数通过配置来设置。
服务提供方
服务注册
服务续约
消费方
获取服务列表
注册中心
失效剔除
自我保护
5.微服务优化之负载均衡Robbin
在实际开发环境里,提供相同服务的提供方有多个实例,为了让相同的实例平均压力,所有就要用负载均衡算法。
Robbin是一种帮忙选择实例的负载均衡器,控制http的请求。
方法有,轮询,随机,或者自己写算法。
6.微服务优化之重试机制
如果一个服务提供方出现了故障,消费者去调用正常会发生错误,但是此刻还有一个提供相同服务的实例在,这是就可以在故障服务调用超时后,返回去调用另一个实例。
配置Robbin就可以实现重试。
7.微服务优化之熔断,依赖Hystrix,豪猪
熔断和重试差不多,但是他是在超时过后可以调用自己的回调函数,返回一个消费者需要的类型,如果重试结果会报错,如果在复杂的分布式架构环境下,一个个连续的错误会拖垮整个习惯。
重试等待时间要比熔断等待时间短
8.微服务开发之代码简化 Fegin
就是讲http伪装,由这个fegin来管理只要在controller层加上注解写出访问服务提供方的id即可。
内部集成了ribbon,hystix(需要自己开启)的功能
9.微服务之安全优化,zuul
他的作用就是一个网关,是个顶级filter,管理访问服务的url映射的服务提供访的地址,鉴定是否有权访问,已经异常处理,调用时长统计。