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这个地址上。
相关推荐
SeaDhdhdhdhdh3 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH55269843 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站4 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午4 小时前
03-三种开发模式
java·架构
涟漪海洋5 小时前
创建最新的JDK25镜像,非root环境启动
java
Rain的Java大神之路5 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
2602_959960926 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
Zane1994126 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言
略略略咯咯6 小时前
AI玩具-study
java
xier_ran7 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库