springcloud微服务实战_06_API网关服务
6.1 zuul 简介 spring cloud zuul API 网关是一个智能的应用程序,它的定义类似于面向对象设计模式中的 faced 门面模式,它的存在就像是整个微服务架构应用的门面一样,所有的外部客户端访问都需要经过它来进行调度与过滤.它除了要实现请求路由,负载均衡,校验过滤等功能之外,还需要更多的能力,比如与服务治理框架的结合,请求转发时的熔断机制,服务的聚合等一些列高级功能. 首先对于路由规则与服务实例的维护问题. spring cloud zuul 通过与 spring cloud eureka 进行整合,将自身注册为 eureka 服务治理下的应用,同时从 eureka 中获取所有的服务实例. 这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来,使得维护服务实例的工作交给了服务治理框架自动完成,不需要人工介入. 而对于路由规则的维护,zuul默认会将通过以服务名作为 ContextPath 的方式来路由映射,大部分情况下,这样的默认设置已经可以实现我们大部分的路由需求,除了一些特殊情况还需要做一些特别的配置. 其次对于类似签名校验,登录校验,在微服务架构中的冗余问题.理论上说,这些校验逻辑在本质上与微服务应用自身的业务并没有太大的关系,所以它们完全可以独立成一个单独的服务存在,只是它们被剥离与独立出来之后,并不是给各个微服务使用,而是在 API