博客
关于我
Spring Cloud实战 | 第四篇:Spring Cloud整合Gateway实现API网关
阅读量:420 次
发布时间:2019-03-06

本文共 1705 字,大约阅读时间需要 5 分钟。

一. 前言

微服务实战系列是基于开源微服务项目 版本升级为背景来开展的,本篇则是讲述API网关使用Gateway替代Zuul,有兴趣的朋友可以进去给个star,非常感谢。

二. 什么是微服务网关?

微服务网关是位于服务之前或者应用程序之前的一个层面,用于保护、增强和控制微服务的访问。

其常见的作用有:

  1. 鉴权校验:验证是否认证和授权
  2. 统一入口:提供所有微服务的入口点,起到隔离作用,保障服务的安全性
  3. 限流熔断
  4. 路由转发
  5. 负载均衡
  6. 链路追踪

三. 网关如何选型?

至于为什么使用Gateway而放弃Zuul?

SpringCloud 生态提供了两种API网关产品,分别是Netflix开源的Zuu1和Spring自己开发的SpringCloud Gateway,SpringCloud以Finchely版本为分界线,之前版本使用Zuul作为API网关,之后更推荐使用Gateway。

Netflix已经在2018年开源了Zuul2,但是SpringCloud已经推出了Gateway,并且在github标识没有集成Zuul2的计划。

四. 项目信息

完整项目结构图

本篇文章涉及项目模块

工程名 端口 描述
nacos-server 8848 注册中心和配置中心
youlai-gateway 9999 API网关
youlai-admin 8080 管理平台

版本声明

Nacos Server: 1.3.2SpringBoot: 2.3.0.RELEASESpringCloud: Hoxton.SR5SpringCloud Alibaba: 2.2.1.RELEASE

五. 项目实战

1.添加SpringCloud Gateway依赖

org.springframework.cloud
spring-cloud-starter-gateway

2.bootstrap.yml配置信息

server:  port: 9999spring:  application:    name: youlai-gateway  cloud:    gateway:      discovery:        locator:          enabled: true # 启用自动根据服务ID生成路由          lower-case-service-id: true # 设置路由的路径为小写的服务ID      routes:        - id: youlai-auth          uri: lb://youlai-auth          predicates:            - Path=/youlai-auth/**          filters:            - StripPrefix=1 # 移除前缀 youlai-auth        - id: youlai-admin          uri: lb://youlai-admin          predicates:            - Path=/youlai-admin/**          filters:            - StripPrefix=1

3.微服务接口

youlai-admin添加一个接口方法用来测试网关转发能力

4.网关测试

依次启动项目nacos-server,youlai-admin,youlai-gateway

可以看到当我们请求网关的服务路径http://localhost:9999/youlai-admin/users的时候,路由根据匹配规则

将以/youlai-admin为前缀的请求路径转发到服务youlai-admin实例上去了。

六. 结语

至此SpringCloud整合Gateaway就成功了,当然这里只是验证了API网关的路由转发功能。后面会写一篇关于SpringCloud Gateaway整合Oauth2实现网关鉴权功能。

转载地址:http://eaxuz.baihongyu.com/

你可能感兴趣的文章
Java 前台后台数据传递、中文乱码解决方法
查看>>
Git报错:Permission denied (publickey)
查看>>
常见的图文布局
查看>>
Laravel - 上手实现 - 文件上传、保存到 public 目录下
查看>>
一次性搞懂 PHP 中面向对象的所有知识点。
查看>>
将mongo设置为windows的服务
查看>>
Linux 修改环境变量报错
查看>>
MYSQL 面试中 查询系列 常考问题
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
【字符编码】字符编码 && Base64编码算法
查看>>
【集合框架】JDK1.8源码分析之LinkedList(七)
查看>>
【设计模式】策略模式
查看>>
【设计模式】命令模式
查看>>
Jenkins 集成postman 自动化运行接口测试用例
查看>>
异步多线程处理
查看>>
hashlib 简单加密
查看>>
python装饰器实现对异常代码出现进行监控
查看>>
轮评审用例,写用例的重要性-----(python单元测试反思)
查看>>
dubbo 接口初入门
查看>>
django+appium实现UI自动化测试平台(开源部分,可定制开发)
查看>>