使用zuul做边缘服务

    Zuul

    Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器,可以使用Zuul进行以下操作:

    • 洞察
    • 压力测试
    • 金丝雀测试
    • 动态路由
    • 服务迁移
    • 负载脱落
    • 安全
    • 主动/被动流量管理

    本小节主要介绍在SpringBoot应用中使用Zuul做API Gateway。关于Zuul的详细功能介绍请参考文档。

    Zuul做API Gateway,即建立一个Zuul Proxy应用,在该Proxy应用中统一定义所有的微服务访问入口,通过使用不同的前缀(stripped)来区分各个微服务。本小节通过建立一个ZuulProxy SpringBoot应用来演示Zuul的API Gateway功能。

    本小节介绍的ZuulProxy和ZuulServer等demo都是基于SpringBoot和ServiceComb框架的应用,具体请参考在Spring Boot中使用java chassis

    • 步骤 1在pom文件中添加依赖:
    • 步骤 2在SpringBoot主类添加注解:
    • 步骤 3在application.yml文件中定义路由策略:

    红色的配置项表示可以根据实际开发环境进行配置。关于zuul.routers的路由策略的详细定义规则,请参考官方文献:,可更细粒度地对路由进行控制。

    • 步骤 4在microservice.yaml定义微服务属性:
    • 步骤 5 Run ZuulMain Application

    在使用zuul做的API Gateway前,首先要启动在zuul.routers中定义的微服务提供者。

    开发服务提供者,开按流程请参考3 开发服务提供者。在微服务microservice.yaml文件中需注意以下两点:

    • APPLICATION_ID需要于zuul proxy中定义的保持一致。

    示例如下:

    API Gateway的访问入口为:http://127.0.0.1:8754,所有在zuul.routers中定义的服务都可通过这个访问入口进行代理访问,访问规则如下:

    这表示,Http调用http://127.0.0.1:8754/myServer/***,会转到discoveryServer服务(例如:”/myServer/101”跳转到discoveryServer 服务下的”/101”)