Spring Cloud 学习笔记 —— 服务网关 Zuul 的 HelloWorld

11.2 Zuul

  • Zuul 是 Netflix 公司提供的网关服务,是前置服务
  • Zuul 的功能:
    1.权限控制,可以做认证和授权
    2.监控请求
    3.动态路由
    4.负载均衡
    5.静态资源处理(不需要转发其他服务,直接在 Zuul 处理)
  • Zuul 中的功能基本上基于过滤器(Filter)实现,它的过滤器有几种不同类型:
    1.pre 校验
    2.routing 把请求路由到微服务上去
    3.post 微服务执行完成,进入
    4.error 过滤器执行报错了,进入

11.2.1 Zuul 的 HelloWorld 级别应用

  • (1)在 javaboycloud 项目中新创建一个 Spring Boot 项目 zuul 作为项目的 moudle。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • (2)添加 Spring Web、Eureka Discovery Client、Zuul 依赖
    在这里插入图片描述

  • (3)配置 application.properties

spring.application.name=zuul
server.port=2020
eureka.client.service-url.defaultZone=http://localhost:1111/eureka
  • (4)zuul 服务启动类加 注解,开启网关代理
@SpringBootApplication
@EnableZuulProxy
public class ZuulApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }
}
  • (5)启动 eureka 服务端、provider 服务和 zuul 服务
    在这里插入图片描述
  • (6)测试正常不通过网关访问 provider 服务 hello 接口
    http://localhost:1113/hello
    在这里插入图片描述
  • (7)通过网关代理访问 provider 服务 hello 接口
    在这里插入图片描述
  • (8)结论:
    直接访问:http://localhost:1113/hello
    网关访问:http://localhost:2020/provider/hello
    默认:网关的 IP 端口/ eureka 目标服务名/目标服务接口名
  • (9)路由规则也可以自己配置,比如:
spring.application.name=zuul
server.port=2020
eureka.client.service-url.defaultZone=http://localhost:1111/eureka

zuul.routes.javaboy-a.path=/javaboy-a/**
zuul.routes.javaboy-a.service-id=provider

重启 zuul服务,访问
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
出了原有的直接访问 provider 服务和通过默认地址中加 provider 服务名访问成功外,/ java-a / hello 也能访问成功,自定义路由规则生效

  • (10)上面的更改路由规则配置代码可以更精简,
spring.application.name=zuul
server.port=2020
eureka.client.service-url.defaultZone=http://localhost:1111/eureka

zuul.routes.provider=/javaboy-a/**

好了先写这么多,话说 Zuul 使用起来真简单,原理:Zuul 和 其他服务都注册都 Eureka 上面了, Zuul 能拿到整个服务列表,Zuul 代理的地址栏中,有要访问的服务名(如 provider),也有要访问的接口(如 hello),所以就能找到目标服务接口了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值