Zuul使用总结

本文详细介绍了Zuul作为微服务网关的使用,包括启用网关、负载均衡、路由配置、忽略服务、前缀设置、灰度发布、敏感Header处理、接口容错、限流策略以及如何通过自定义过滤器实现URL改造等功能。同时,还展示了如何利用actuator查看路由和过滤器状态。
摘要由CSDN通过智能技术生成

目录

启用网关

负载均衡

路由端点

配置指定微服务的访问路径

忽略微服务

前缀

灰度发布功能

敏感Header

接口容错

限流

过来的url改造成别的url

Zuul的自带Route过滤器使用

actuator查看路由和过滤器

Pre过滤器控制不通过Route过滤器


启用网关

新建项目引入依赖

		<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>
		</dependency>

配置文件

eureka.client.service-url.defaultZone=http://euk1.com:7001/eureka/
spring.application.name=zuulserver
server.port=80

启动类

@EnableZuulProxy

测试访问

网关会将服务名转换成具体服务的ip和端口,实际进行访问

http://localhost/consumer/alive

负载均衡

启动两个Consumer

轮询访问上面地址,会看到返回结果中,端口一直轮询在变。说明负载均衡生效了,默认是轮询

consumer.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

路由端点

调试的时候,看网关请求的地址,以及 映射是否正确。网关请求有误时,可以通过此处排查错误。

配置

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
management.endpoint.health.enabled=true
management.endpoint.routes.enabled=true

配置指定微服务的访问路径

1. 通过服务名配置(虚拟主机名)

zuul.routes.consumer=/xxoo/**

配置前先访问,然后做对比。

2.自定义映射

zuul.routes.xx.path=/xx/**
zuul.routes.xx.url=http://mashibing.com

3. .自定义下的负载均衡

zuul.routes.xx.path=/xx/**
zuul.routes.xx.service-id=cuid

cuid.ribbon.listOfServers=localhost:82,localhost:83
ribbon.eureka.enabled=false

忽略微服务

配置

zuul.ignored-services=user-provider

前缀

zuul.prefix=/api/v1

带上前缀请求

zuul.strip-prefix=false

灰度发布功能

zuul服务器的

pom.xml:需要引入eureka客户端、zuul、ribbon-discovery-filter-spring-cloud-starter这三个。

ribbon-discovery-filter-spring-cloud-starter主要用于网关选择集群中的某一个节点。主要方法是RibbonFilterContextHolder.getCurrentContext().add("version","v2");(详情见java代码)
<?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"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.kingdee</groupId>
    <artifactId>zuul</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>zuul</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR11</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值