Zuul路由转发规则

定制的路由规则的主要功能:

1、路由表中包含源路径,微服务名称,目标路径

2、Endpoint粒度配置支持

3、路由支持1对1精确路由

4、源路径可以前缀/**格式来模糊路由

5、目标路径可以使用前缀/**格式来装配目标路径

6、保留默认动态路由规则:服务名称/** --> 是否截去前缀 --> 目标路径

7、保留默认动态路由规则是否支持截去前缀的配置参数stripPrefix特性

8、路由规则可以在不重启服务动态更新,这个功能通过外化配置来支持

9、匹配股则采取谁先匹配路由谁,也就是说在路由表中有2个或以上的路由规则可能被匹配到时,匹配最先查询到的规则

路由规则格式采用properties格式:

源路径 = 微服务名称, 目标路径

启动时读取配置并解析,放入路由表。请求时通过查询匹配到合适的路由转发。

例如:

/api/v1/trade=trade,/v1/trade
/api/customer/**=customer,/api/v1/**
/api/user/**=user

在上面的例子中:

  • /api/v1/trade会精确的路由到trade微服务的/v1/trade;
  • /api/customer/开头的api会路由转发到customer微服务的/api/v1/**,其中后面的**会被前面的**部分替换,比如/api/customer/card->/api/v1/card的转换
  • /api/user/开头的api会路由转发到user微服务的/api/user/**,endppoint不变

一、直观显示路径到微服务的映射

#localhost:8888/routes(Zuul对应的IP及端口)
management:
  security:
    enabled: false

  

二、路由配置

1、静态路由

#除了“users”服务,其他的服务都会被忽略
zuul:
  ignoredServices: ‘*‘
  routes:
    users: /myusers/**

#前端通过/myusers的http访问,将会被后端“users”服务处理(例如:/myusers/101将会转发的/101)
zuul:
  routes:
    users: /myusers/**

#将xxx/books后面的所有请求,添加到url后面去
示例:http://localhost:8888/books/xxx->http://localhost:5000/books/avaiable/xxx
zuul:
  routes:
    books: http://localhost:5000/books/available

#books/xxx=>转化为http://localhost:5000/books/available/xxx
示例:http://localhost:8888/books/xxx==>http://localhost:50000/books/available/xxx
server:
  port: 8888
spring:
  application:
    name: zuul-gateway
zuul:
  routes:
    books:
      url: http://localhost:5000/books/available

#/baidu后的所有直接添加到http://localhost:8080后
示例:http://localhost:8888/baidu/**=>http://localhost:8080/**
zuul:
  routes:
    baidu:
      path: /baidu/**
      url: http://localhost:8080

  

时间: 2024-12-18 00:32:30

Zuul路由转发规则的相关文章

SpringCloud学习之Zuul路由转发、拦截和熔断处理(七)

Spring Cloud Zuul 服务网关是微服务架构中一个不可或缺的部分.通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能. Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性. 在Spring Cloud体系中, Spring Cloud Zuul 封装了Zuu

mininet实验 动态改变转发规则实验

写在前面 本实验参考 POX脚本设置好控制器的转发策略,所以只要理解脚本. mininet脚本设置好拓扑和相关信息,所以也只要理解脚本. POX脚本目前基本看不懂. 本实验我学会了:POX控制器Web界面,第一次真正的看到了流表项. 实验拓扑 在该环境下,假设H1 ping H4,初始的路由规则是S1-S2-S5,一秒后,路由转发规则变为S1-S3-S5,再过一秒,规则变为S1-S4-S5,然后再回到最初的转发规则S1-S2-S5.通过这个循环调度的例子动态地改变交换机的转发规则. 实验步骤 1

Mininet实验 动态改变转发规则

介绍 拓扑如下: 在该环境下,假设H1 ping H4,初始的路由规则是S1-S2-S5,一秒后,路由转发规则变为S1-S3-S5,再过一秒,规则变为S1-S4-S5,然后再回到最初的转发规则S1-S2-S5.通过这个循环调度的例子动态地改变交换机的转发规则. pox脚本 pox脚本lab_controller.py 不得不说这脚本问题是真的多. 1 from pox.core import core 2 3 import pox.openflow.libopenflow_01 as of 4

Idea下SpringCloud2实验(四、Zuul网关实现路由转发和过滤)

一.创建springBoot项目springcloud-zuul-server项目 二.配置文件 1.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

zuul路由网关

一.zuul是什么?zuul 包含以下两个最主要的功能:1.路由功能: 负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.2.过滤器功能: 则负责对请求的处理过程进行干预,是实现请求校验.服务聚合等功能的基础. Zuul 和 Eureka 进行整合将Zuul自身注册为 Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得.注意: Zuul 服务最终还是会注册进 Eureka 提供 = 代理 + 路由 + 过滤

SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关的过滤器Filter以及异常处理的教程. SpringCloud Zuul Filter 介绍 过滤器概述 Zuul的中心是一系列过滤器,能够在HTTP请求和响应的路由过程中执行一系列操作. 以下是Zuul过滤器的主要特征: 类型:通常在应用过滤器时在路由流程中定义阶段(尽管它可以是任何自定义字

SpringCloud学习系列-zuul路由网关

zuul路由网关   1.是什么 Zuul包含了对请求的路由和过滤两个最主要的功能:    其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验.服务聚合等功能的基础. Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得. 注意:Zuul服务最终还是会注册进Eureka 提供=代理+路由+过滤

Linux主机实现简单的路由转发功能

只要在Linux主机上添加一些简单的路由条目, 这些Linux主机就可以充当简单路由器的功能. 在实际生产坏境中, 当我们需要一台路由器简单作为转发数据, 但是手上却没有路由器的话, 我们就可以指定一台Linux主机充当一个简单的路由器,实现路由简单的转发. 上面所诉尤其强调简单, 所以说只是实现简单的路由的功能, 如果要实现非常复杂的功能的话, 一台Linux主机可能无法实现你想要的条件. 实验坏境: 基于VMware上的4台虚拟主机,主机名为R1.R2的两台主机(都是centos6.8系统)

SpringCloud系列八:Zuul 路由访问(Zuul 的基本使用、Zuul 路由功能、zuul 过滤访问、Zuul 服务降级)

1.概念:Zuul 路由访问 2.具体内容 在现在为止所有的微服务都是通过 Eureka 找到的,但是在很多的开发之中为了规范微服务的使用,提供有一个路由的处理控制组件:Zuul,也就是说 Zuul 就作为中间的一个代理层出现. 2.1.Zuul 的基本使用 本次使用 Zuul 将访问无安全认证的微服务信息,例如:公司信息就属于无安全认证的微服务: 1. 为了突出 zuul 的功能,建立一个新的主机映射: 127.0.0.1 gateway-9501.com 以后所有的微服务的访问不再直接进行处