zuul学习

一、Zuul网关的作用

网关有以下几个作用:

  1. 统一入口:未全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。
  2. 鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。
  3. 动态路由:动态的将请求路由到不同的后端集群中。
  4. 减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射。

二、Zuul网关的应用

1. 网关访问方式

通过zuul访问服务的,URL地址默认格式为:http://ip地址:端口/要访问的服务名称/服务中的URL

服务名称:properties配置文件中的spring.application.name

服务的URL:就是对应的服务对外提供的URL路径监听。
2.网关依赖注入

xml 复制代码
<!-- spring cloud Eureka Client 启动器 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<!-- zuul网关的重试机制,不是使用ribbon内置的重试机制
   是借助spring-retry组件实现的重试
   开启zuul网关重试机制需要增加下述依赖
 -->
<dependency>
   <groupId>org.springframework.retry</groupId>
   <artifactId>spring-retry</artifactId>
</dependency>

3.网关启动器

java 复制代码
/**
 * @EnableZuulProxy - 开启Zuul网关。
 *  当前应用是一个Zuul微服务网关。会在Eureka注册中心中注册当前服务。并发现其他的服务。
 *  Zuul需要的必要依赖是spring-cloud-starter-zuul。
 */
@SpringBootApplication
@EnableZuulProxy
public class ZuulApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }
}

4.网关全局变量配置
4.1 URL路径匹配

properties 复制代码
# URL pattern
# 使用路径方式匹配路由规则。
# 参数key结构: zuul.routes.customName.path=xxx
# 用于配置路径匹配规则。
# 其中customName自定义。通常使用要调用的服务名称,方便后期管理
# 可使用的通配符有: * ** ?
# ? 单个字符
# * 任意多个字符,不包含多级路径
# ** 任意多个字符,包含多级路径
zuul.routes.项目名称.path=/api/**
# 参数key结构: zuul.routes.customName.url=xxx
# url用于配置符合path的请求路径路由到的服务地址。
zuul.routes.项目名称.url=http://127.0.0.1:8080/
#以上2行配置大概意思是将 path中匹配的地址转发到 url这个地址上。
相关推荐
钮钴禄·爱因斯晨2 小时前
赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。
java
wu_yi_min2 小时前
Spring Boot 日志:项目的“行车记录仪”
java·数据库·spring boot
小万编程2 小时前
【2025最新计算机毕业设计】基于SpringBoot+Vue爬虫技术的咖啡与茶饮料文化平台(高质量源码,可定制,提供文档,免费部署到本地)
java·vue.js·spring boot·毕业设计·课程设计·计算机毕业设计·项目源码
kongxx3 小时前
Maven运行任何命令都报错“Internal error: java.lang.ArrayIndexOutOfBoundsException”
java·开发语言·maven
怜渠客3 小时前
关于Java的HttpURLConnection重定向问题 响应码303
android·java
tingting01193 小时前
私有包上传maven私有仓库nexus-2.9.2
java·maven
天天向上杰3 小时前
简识JVM中并发垃圾回收器和多线程并行垃圾回收器的区别
java·jvm·算法
UVCuttt3 小时前
三天急速通关JavaWeb基础知识:Day 1 后端基础知识
java·servlet·java-ee·tomcat
一张假钞4 小时前
Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查
java·hadoop·hdfs·sqoop
java1234_小锋4 小时前
JVM对象分配内存如何保证线程安全?
java·开发语言·jvm