1.Zuul:网关
2.Eureka:注册中心
3.Ribbon:负载均衡
4.Feign:服务调用
5.Hystix:熔断器
1.zuul网关 (动态路由)
为什么会出现一个zuul网关?
因为我们所用的微服务的框架,写好的每一个服务可以通过外面直接请求,这样的话对外暴露会有安全性的问题。那么怎么办?
第一个办法就是在每一个服务外面加一层校验逻辑,那样会显得比较麻烦
第二个办法就是做一个围墙,将校验逻辑写在围墙里面,然后再提供一个入口,再将微服的地址都暴露给zuul网关,zuul网关再将地址暴露给外界,外界再通过地址请求
网关的核心功能是:过滤和路由
2.Eureka:注册中心
注册中心有什么作用?
它是一个注册服务和拉取服务的过程
有一个调用者和一个提供者还可以做到监控服务
在默认的时间内会发送一个心跳周期30秒,90秒如果没有发送就会认为服务宕机。
3.Ribbon:负载均衡
负载均衡的就是创建多个同样的服务,当其中一个服务挂掉了那么其他的服务将会接替它,负载均衡底层有两种算法,一种是轮播,一种是随机
4.Feign:服务调用
feign的作用就是伪装请求,将Rest的请求进行隐藏,伪装成类似SpringMVC的controller一样。你不用再自己拼接URL,拼接参数等等操作,一切都交给feign去做。
5.Hystix:熔断器
为什么会出现熔断器?
熔断降级
1先说一下降级
hystrix为每一个微服务提供一个小线程池,如果线程池已满调用将被立即拒绝。默认不采用排队加速失败判断时间。
服务降级会导致请求失败,但是不会导致阻塞,对其他的服务没有什么影响。
2.熔断
熔断是在降级的基础上来实现的,熔断分为三种状态
第一种:熔断器是关闭的
第二种:熔断器是打开,那么所有的请求将会被降级,当一定时间内失败次数达到了阈值,那么将会被熔断。
第三种:半开状态。