SpringCloud-Zuul路由网关

Zuul说明

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

其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

Zuul网关不是必要的。是推荐使用的

使用Zuul,一般在微服务数量较多(多于10个)的时候推荐使用,对服务的管理有严格要求的时候推荐使用,当微服务权限要求严格的时候推荐使用。

网关有以下几个作用:

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

Zuul的使用

由于我们使用的是同一台设备,所以配置一下hosts文件进行域名映射,新增一个域名来作为我们的zuul服务器,hosts文件所在路径:C:\Windows\System32\drivers\etc

新建springcloud-zuul-9527模块

Maven依赖

<!--Zuul依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

application.yml

server:
  port: 9527

spring:
  application:
    name: spring-cloud-zuul

#Eureka的配置
eureka:
  client:
    service-url:
      defaultZone: http://Eureka-Server1:7001/eureka/,http://Eureka-Server2:7002/eureka/
  instance:
    instance-id: zuul9527.com
    prefer-ip-address: true #显示IP

# zull 路由网关配置
zuul:
  # 路由相关配置
  # 原来访问路由: zuul访问地址 + 服务注册名称(必须小写) + 请求
  # eg:http://www.zuul9527.com:9527/springcloud-provider-dept/get
  # 添加以下zull路由配置后访问路由,就把我们的服务名称给隐藏掉
  # eg:http://www.zuul9527.com:9527/mydept/get
  routes:
    mydept.serviceId: springcloud-provider-user # eureka注册中心的服务提供方路由名称
    mydept.path: /mydept/** # 将eureka注册中心的服务提供方路由名称 改为自定义路由名称

  # 但是如果只做以上配置的话,我们除了zuul是还可以使用服务注册名称来进行访问的,所以我们还需要添加以下配置
  # 通过以下配置,使我们不能再使用springcloud-provider-dept服务注册名称来进行访问,*: 忽略,隐藏全部的服务名称~
  ignored-services: "*"
  # 设置公共的前缀,设置过后的访问地址 eg:http://www.zuul9527.com:9527/haust/mydept/get
  prefix: /haust

启动类

@SpringBootApplication
@EnableZuulProxy
public class SpringcloudZuul9527Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudZuul9527Application.class, args);
    }

}

启动Eureka、zuul、服务提供者

访问Eureka可以看到我们的zuul服务

 

此时我们就可以通过zuul服务路由到我们的服务了,统一了入口,可以看到,URL也隐藏掉了我们的服务名称

 

posted @ 2022-05-30 23:58  RFAA  阅读(32)  评论(0编辑  收藏  举报