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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 @   RFAA  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示