SpringCloud - Zuul路由网关

Posted Lam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud - Zuul路由网关相关的知识,希望对你有一定的参考价值。

一、概述

Zuul提供了代理、路由、过滤三大功能!

主要的功能:

路由:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。

过滤:负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。

Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时还可以从Eureka中获取其他微服务的消息,以后访问微服务都是通过Zuul跳转后获得的。

注意Zuul服务最终还是会注册进Eureka

二、代码实现

新建一个模块 springcloud-zuul-9207 

导入依赖

<!-- zuul -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>
<!-- 由于zuul 也是微服务所以应该属于euaeka的客户端,所以需要引入这个 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>
<!-- web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 热部署工具 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

新建application.yaml,进行配置

server:
  port: 9207

# Spring配置
spring:
  application:
    name: springcloud-zuul

# Eureka配置
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/
  instance:
    instance-id: zuul9207.com
    prefer-ip-address: true # 隐藏真实IP

# zuul路由配置
zuul:
  routes: # 隐藏服务名称,通过新的path访问
    mydept.serviceId: springcloud-provider-dept
    mydept.path: /mydept/**
  ignored-services: springcloud-provider-dept # 忽略服务,不能再使用这个路径访问,"*"可以隐藏全部
  prefix: /cyan # 设置统一公共的前缀

# 配置信息
info:
  app.name: cyan-springcloud
  company.name: blog.cyan.com

新建一个主启动类,并添加 @EnableZuulProxy 注解

@SpringBootApplication
@EnableZuulProxy  // 开启代理
public class ZuulApplication_9207 {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication_9207.class, args);
    }
}

三、测试

① 配置 serviceId 和 path

只能通过 http://localhost:9207/mydept/dept/get/1 与 http://localhost:9207/springcloud-provider-dept/dept/get/1 访问

② 增加 ignored-services 忽略配置,可以配置星号 "*" 忽略所有

只能通过 http://localhost:9207/mydept/dept/get/1 访问

③ 配置 prefix 增加统一的前缀 

只能通过 http://localhost:9207/cyan/mydept/dept/get/1 访问

以上是关于SpringCloud - Zuul路由网关的主要内容,如果未能解决你的问题,请参考以下文章

springCloud学习- 路由网关(zuul)

SpringCloud学习系列-zuul路由网关

SpringCloud路由网关Zuul

SpringCloud - Zuul路由网关

SpringCloud-路由网关(Zuul)

SpringCloud的Zuul路由网关