本文介绍并集成了ZUULAPI逍遥法外:APIGateway是一个服务器,也可以说是进入系统的唯一节点。这与面向对象设计模式中的Facade模式非常相似。APIGateway封装了系统内部的架构,为各个客户端提供API。它还可能具有授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等其他功能。下图显示了一个适应当前架构的API网关。APIGateway负责请求转发、合成和协议转换。来自客户端的所有请求都必须先通过API网关,然后将这些请求路由到相应的微服务。APIGateway经常会调用多个微服务来处理一个请求,并聚合多个服务的结果。它可以在Web协议和内部使用的非Web友好协议之间进行转换,例如HTTP协议和WebSocket协议。SpringCloudZuul路由是微服务架构中不可或缺的一部分,提供动态路由、监控、弹性、安全等边缘服务。Zuul是Netflix出品的JVM路由和服务器端负载均衡器。新建一个Springboot项目,pom添加依赖org.springframework.cloudspring-cloud-starter-eurekaorg.弹簧框架。cloudspring-cloud-starter-zuulapplication:/**使用@EnableZuulProxy注解激活zuul。*跟进这个注解,我们可以看到这个注解集成了@EnableCircuitBreaker和@EnableDiscoveryClient,是一个组合注解,可以简化配置。*/@SpringBootApplication@EnableZuulProxypublicclassZuulApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ZuulApplication.class,args);}}yml:spring:application:name:microservice-api-gatewayserver:port:8000eureka:instance:hostname:gatewayclient:serviceUrl:defaultZone:http://discovery:8761/eureka/#下面整棵树不是必须的,如果不配置,默认为http://GATEWAY:GATEWAY_PORT/你要访问的Eureka服务id的小写/**路由到:http://你要访问的Eureka服务id的小写:serviceport/**zuul:routes:user:#随便写什么,只在zuul上;当这里的值为=service-id时,service-id可以省略。path:/user/**#你要映射到的路径service-id:userprovider#Eureka中的serviceId启动后,可以使用`http://GATEWAY:GATEWAY_PORT/你想要的Eureka服务id的小写toaccess/**接入微服务后,如果想忽略某个微服务,可以配置`zuul:ignored-services:microservice-provider-user#需要忽略的服务(配置后不会路由)`