自我学习汇总:ZUUL篇

什么是ZUUL?

1.ZUUL是一种网关技术。
2.所有的URL均不对外暴露,只留下网关作为对外的唯一接口。
3.请求使用网关对外提供的路由,经过网关的解析转发到对应接口,进行调度和过滤。
4.高级使用:
	1).路由规则
	2).熔断机制
	3).服务聚合
总结:ZUUL通过路由规则配置,隐蔽接口,通过相应的规则,将请求转发到对应的接口。

ZUUL的搭建:(新建一个Eureka客户端项目:)

1.添加依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        <version>2.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.netflix.zuul</groupId>
        <artifactId>zuul-core</artifactId>
        <version>1.3.0</version>
    </dependency>
</dependencies>

2.配置文件:

server:
  port: 9100
spring:
  application:
    name: zuul
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/ #当前zuul网关想要注册到哪个注册中心
#路由规则定义。这里定义两种路由规则route1和route2
#,代表访问网关/test01/**或/test02/**时。
#路由到服务名为 eurekaservice1或 eureka
#service2中的服务集群去。
zuul:
  routes:
    baidu:
      #自定义名称 支持配置多个
      defin-url-route:
        #配置开放出来的RUL (所有/zuul-test开头的请求都会被转发到注册中心id为;eruekaClient的服务中)
        path: /zuul-test/**
        #注册中心的服务名称 转发到哪个服务
        serviceId: eurekaClient
        #访问 http://localhost:port/zuul-test/test ===> 转发到 eurekaClient上的test

3.开启网关特性:

	1.启动类添加@EnableZuulProxy注解,开启网关特性。
	2.启动服务,如果服务注册到Eureka注册中心后即表示搭建成功。

4.ZUUL访问:

	1.通过以上配置达到如下效果:	
   		#访问 http://localhost:port/zuul-test/test ===> 转发到 eurekaClient上的test

5.待完善:

1.路由配置
	zuul:
	  routes:
	    baidu:
	      #自定义名称 支持配置多个
	      defin-url-route:
	        #配置开放出来的RUL (所有/zuul-test开头的请求都会被转发到注册中心id为;eruekaClient的服务中)
	        path: /zuul-test/**
	        #注册中心的服务名称 转发到哪个服务
	        serviceId: eurekaClient
	        
2.单实例URL配置
	### 网关配置
	zuul:
	  # 路由信息配置
	  routes:
	    # 针对某个服务的配置,可自定义
	    defin-url-route: 
	    	# 访问的路径
	    	path: /do/**
	    	# defin-url-route 的地址
	    	url: http://localhost:port
	    	
3.多实例配置
	zuul:
	  # 路由信息配置
	  routes:
	    # 针对某个服务的配置,可自定义
	    defin-url-route-01: 
	    	# 访问的路径
	    	path: /do01/**
	    	# defin-url-route 的地址
	    	url: http://localhost:port
	    defin-url-route-02: 
	    	# 访问的路径
	    	path: /do02/**
	    	# defin-url-route 的地址
	    	url: http://localhost:port
	
4.忽略表达式
	1).Zuul 提供了一个忽略表达式参数 zuul.ignored-patterns,可以用来设置不希望被 API 网关进行路由的 URL 表达式。
	2).zuul: 
			ignored-patterns=/**/hello/**
			routes: 
				user-service: 
					path: /user-service/**
			user-service: 
				service-id=user-service
	3).经过如上设置,访问 http://localhost:port/user-service/hello后将无法找到该请求。
	
5.路由前缀
	zuul:
	  routes:
	  	#自定义实例名称
	    api-user:
	      #路由配置
	      path: /user/**
	      #注册中心中的服务id
	      service-id: user-service
	      #截断前缀设置
	      strip-prefix: false
	      **(经过如上设置,路由前缀不会被ZUUL自动截断)**

ZUUL通配符:

/** :匹配任意数量的路径与字符	/client/add,/client/a,/client/a/b/c
/*	:匹配任意数量的字符	/client/add,/client/a,/client/abc
/?	:匹配单个字符	/client/a,/client/b,/client/c

总结:

1.ZUUL类似于一种URL过滤及转发器,将请求由网关统一进行调配。
2.如果请求URL符合网关中的配置,则转发到相应的请求。
3.如果不符合,即被网关过滤。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值