之所以把这两个组件放一块,是因为使用了一段时间的nacos,因为nacos集成了这两项重要的功能。
注册中心(服务治理)Eureka
维护着一份微服务清单,这些微服务连接Eureka,并且保持心跳,持续表明自己还活着;将当前清单中超时(默认为90秒)没有心跳的服务剔除出去,并且统计心跳失败的比例在15分钟之内是否低于85%(通常由于网络不稳定导致),是的话会进入自我保护模式,不再删除清单中的数据,网络恢复后,会自动退出该模式
配置中心Config
将微服务的配置文件放到统一的位置管理(比如GitHub),然后去获取这些配置文件来启动或部署应用
Ribbon
简单理解就是合理摊分用户的请求,基于某种规则(如轮询,随机连接等)去连接后台服务,默认采用轮询,也可以自定义实现。
ps:与nginx的区别:
Ribbon是客户端负载均衡,服务清单在客户端(从Eureka Server处获得),在发送请求时通过负载均衡算法,在多个服务器之间选择一个进行访问(由客户端决定访问哪个服务器);
对nginx而言,服务清单在服务端,由nginx反向代理进行分配。
Hystrix(网上也管它叫熔断器,断路器)
一个防雪崩的工具,雪崩:由于单个服务的延迟,可能导致所有的请求都处于延迟状态,很快就使服务负载饱和了,资源耗尽,直到不可用,最终导致这个分布式系统都不可用。有以下解决办法:
Feign
简化微服务之间的调用
第一代是zuul,第二代是gateway
作用是拦截请求做路由转发、权限校验、限流控制等功能。