吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1305|回复: 2
收起左侧

[学习记录] SpringCloud学习心得---Zuul

[复制链接]
zyt温柔发 发表于 2022-2-17 21:25
本帖最后由 zyt温柔发 于 2022-2-17 21:43 编辑

9 Zuul 网关
不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。比如一个电影购票的手机 APP,可能会调用电影分类微服务,用户微服务,支付微服务等。如果客户端直接和微服务进行通信,会存在以下问题:
  • 客户端会多次请求不同微服务,增加客户端的复杂性
  • 存在跨域请求,在一定场景下处理相对复杂
  • 认证复杂,每一个服务都需要独立认证
  • 难以重构,随着项目的迭代,可能需要重新划分微服务,如果客户端直接和微服务通信,那么重构会难以实施
  • 某些微服务可能使用了其他协议,直接访问有一定困难
Zuul 包含了对请求的路由和过滤两个最主要的功能:
  • 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。
  • Zuul 和 Eureka 进行整合,将 Zuul 自身注册为 Eureka 服务治理下的应用,同时从 Eureka中获得其他微服务的信息,也即以后的访问微服务都是通过 Zuul 跳转后获得。
  • 总体来说,Zuul 提供了代{过}{滤}理、路由和过滤的功能。
zuul.png
9.1创建 Zuul 工程

02

02

加入如下依赖:
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
    </dependencies>

配置 applicaton.yml
server:
  port: 9000
  servlet:
    context-path: /xigua
spring:
  application:
    name: zuul-gateway
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:5000/eureka/
zuul:
  ignored-services: '*'                     #忽略指定微服务名称,让用户不能通过微服务名称访问,“*”忽略所有微服务
  prefix: /maomi                            # 给访问路径添加统一前缀
  routes:
    employee:                               # 自定义路由规则的名称,在底层的数据结构中是 Map 的键
      service-id: study-feign-consumer      # 目标微服务名称,ZuulRoute 类型的一个属性
      path: /zuul-emp/**                    # 用来代替目标微服务名称的路径,ZuulRoute 类型的一个属性

创建主启动类com.study.spring.cloud.AtzytMainType:
[Java] 纯文本查看 复制代码
// 启用 Zuul 代{过}{滤}理功能
@EnableZuulProxy
@SpringBootApplication
public class AtzytMainType {
    public static void main(String[] args) {
        SpringApplication.run(AtzytMainType.class, args);
    }
}

9.2访问测试:
不指定地址代替微服务名称(未配置application.yml)

03

03

配置后:
最终测试.png
GitHub源码地址:https://github.com/zhaoyuetong/SpringCloud-----consumer-provider-Eureka-.git
欢迎大家一起学习讨论呀...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

若无zz 发表于 2022-2-17 23:23
zuul过时了 用spring cloud gateway吧
PpaPingggg 发表于 2022-2-17 23:30
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表