一、微服务架构理论
服务注册:
Eureka(停更!)停止更新停更不停用,Zookeeper也可以作为服务注册中心(老技术),Consul也可以替换Eureka(不推荐),Nacos可以完美替换Eureka(强烈推荐);
服务调用:
以前用Ribbon,LoadBalancer;
Feign(停更!)之前与Ribbon齐名的,openFeign;
服务降级:
Hystrix((停更!)SpringCloud原生自带的服务降级和熔断框架,企业中正在大规模使用),Hystrix停更后国外推荐resilience4j,国内使用Sentinel(强烈推荐);
服务网关:
Zuul(停更!),Zuul2,GateWay(强烈推荐);
服务配置:
Config(停更!),Nacos(推荐使用);
服务总线:
Bus(停更!),Nacos(推荐使用);
综上:Nacos(推荐使用)=Eureka(服务注册)+Config(服务配置)+Bus(服务总线)
1. 微服务架构概述
2. Spring Cloud技术栈
说明1:(框中是spring boot、spring cloud体系中的,框外是第三方的;) 首先过来之后先通过一个微服务网关Netflix Zuul(spring cloud抄袭Netflix网飞公司即国外一家视频网站类似于美国版的爱奇艺,即对外称为spring cloud实际还是Netflix),去服务注册,然后去配置中心上读取多个spring boot开发的微服务来进行协调和调度,需要认证,如果有容错和限流 如降级feign、熔断等,最终整个服务的运作需要有监控、日志、健康检查和告警等;此为目前一个主流的微服务架构。
说明2:根据上图,如果要做服务的注册与发现用Eureka,服务的负载与调度用Ribbon、Feign,降级和熔断用Hystrix,服务网关用zuul,分布式配置中心用Spring Cloud Config,一个个微服务功能的开发用Spring Boot;
说明:最终Springcloud通过网关,调用这些负载均衡,每个微服务Service A、Service B、Service C来进行调度;