1.nacos
nacos是阿里提供的组件,是微服务的注册中心,配置中心,有提供的网页版界面操作系统,可以完成服务的注册,以及监听服务的存活状态,所属组别。配置中心的话是可以根据你在naocs上分的组,把组的id配置到项目的bootstrap.yml中,改变项目配置,项目可以灵活的切换环境以及配置,不同的人还还可以注册自己组到naocs,做自己的配置。
2.feign
feign是一个远程调用的组件,主要解决分布式系统中,业务跨库的问题。在已经注册到naocs的服务,同一个组下可以进行调用,这时他作为一个服务间通信的组件,本身集成Ribbon的负载均衡能力、错误重试、日志、Hystrix熔断等机制,这些组件不配置的话有会使用其默认策略。feign通过在启动类上加入@EnableFeignClients注解进行全局开启,还得加入@ComponentScan注解进行包扫描,把类上标注@FeignClient注解的类,都扫描进spring中,这样就可以进行分布式系统中的跨库调用了。
3.Ribbon
Ribbon是一个负载均衡器,他是负责控制http调用时的分发问题,Ribbon的负载均衡策略有简单轮询、权重、随机、重试多种策略。
4.Gateway
Gateway是网关,主要可以过滤和鉴权,统一错误处理。通过实现GlobalFilter接口,重写其filter方法,是实现请求的鉴权。
5.Netflix Hystrix
Hystrix是熔断控制器,当上下游出现问题的时候,会向出错的一方进行熔断,避免占用过多资源让服务崩掉,同时会间隔一段时间向出错的服务发送心跳,查看服务是否重新上线。