SpringCloud-05-Zuul网关

关于zuul网关,它所做的就是为所有服务提供一个唯一的入口,通过配置的路由分和路由映射发从而实现请求获取真实服务!

1.什么是Zuul

Zull包含了对请求的路由(用来跳转的)和过滤两个最主要功能:

  • 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,
  • 而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
    在这里插入图片描述
    注意:Zuul尽管起着过滤器和路由的功能,但是它仍然是一个客户端的服务,注册在Eureka当中!

2.Zuul的使用

  • 导入依赖
需要导入两个依赖:首先EurekaClient和Zuul的依赖
    <!--Hystrix熔断机制-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-hystrix</artifactId>
        <version>1.4.6.RELEASE</version>
    </dependency>
    
    <!--Zuul网关-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        我们需要在yaml配置文件当中进行一些相关的配置!1,将zuul作为一个客服端服务注册在Eureka当中 2,对Zuul配置相关的路由和需要隐藏的服务名字,

  • 编写配置

我们需要在yaml配置文件当中进行一些相关的配置!首先将zuul作为一个客服端服务注册在Eureka当中,其次是对Zuul配置相关的路由和需要隐藏的服务名字

server:
  port: 9527

spring:
  application:
    name: springcloud-zuul

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/  #指定注册中心的地址
  instance:
    instance-id: zuul9527.com
    prefer-ip-address: true  #真实ip地址隐藏,显示当前服务的ip

info:
  app.name: SQX-SpringCloud
  company.name: Alibaba

zuul:
  routes:   #将服务名和映射地址以<k,v>键值对的方式配置
    SPRINGCLOUD-PROVIDER-DEPT: /mydept/**
    SPRINGCLOUD-04: /mydept02/**

    #mydept.serviceId: springcloud-provider-dept
    #mydept.path: /mydept/**
  #ignored-services: springcloud-provider-dept  #不能使用springcloud-provider-dept路径访问
  ignored-services: "*"   #忽略所有的微服务名称访问路径访问
  • 开启功能
    在主启动类当中开启网关功能,开启客户端服务功能
@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class ZuulApplication_9527 {
    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication_9527.class,args);
    }
}

总结:

首先是就就是网关开启后,网关会以服务的身份代理注册中心的所有服务,然后就是所有的请求过来之后,都会经过网关,去调用服务(此时我们可以修改c盘的host文件去表示网关),调用真实服务就是以服务名字调用网关下的服务,此时才可以获取到我们的真实服务,但是在此时尽管我们的入口实现了统一,但是我们的真实服务名字已经暴露,我们可以在zuul中去通过路由配置隐藏我们的真实服务名字,从而以映射的名字去访问真实服务,但是我们此时还是可以通过服务名字去调到真实服务,我们在zuul去配置所有服务名字不可调用即可,这是我们的情况就是,请求通过网关,按照网关的路由配置去访问对应的真实服务!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Just_Goer~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值