文章目录
一、Zuul
1.1 概述
zuul包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤是负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础,Zuul和Eureka进行整合,将zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获取其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
注意:Zuul服务最终还是会注册进Eureka
提供=代理+路由+过滤三大功能
1.2 需要添加的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
1.3 pom文件的配置
spring:
datasource:
username: ybx
password: 510363
url: jdbc:mysql://localhost:3306/Bishe2
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
show-sql: true
hibernate:
ddl-auto: update
application:
name: Rubbish-Zuul
server:
port: 9009
eureka:
client:
service-url:
defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7004.com:7004/eureka/,http://eureka7005.com:7005/eureka/
instance:
instance-id: RubbishZuul-9009.com
prefer-ip-address: true #访问路径可以显示IP地址
info:
app.name: ybx.zuul
compay.name: ybx.company
build.artifactId: @project.artifactId@
build.version: @project.version@
1.4 主启动类的修改
package com.rubbish.rubbishzuul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
public class RubbishZuulApplication {
public static void main(String[] args) {
SpringApplication.run(RubbishZuulApplication.class, args);
}
}
1.5 测试
-
步骤
启动eureka服务集群—>启动微服务提供者—>启动zuul -
不使用路由
-
使用路由
1.6 zuul路由404问题
- 提供的微服务在实际访问时记得微服务名称一定要小写。
1.7 8888问题
二、Zuul的相关配置
2.1 隐藏微服务名称
- 配置文件
- 通过zuul.routes.<路由名>.path与zuul.routes.<路由名>.serviceId
- 通过zuul.routes.<路由名>.path与zuul.routes.<路由名>.url
- 测试
2.2 禁止使用微服务名称访问
2.4 禁止使用所有的微服务名称访问
zuul:
ignored-services: "*"
2.5 加上访问前缀
zuul:
prefix: rubbish