Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos)(非阿里组件)

  • 回溯
  • Gateway 整合 nacos
    • 方式一(复杂/灵活/常用)
    • 方式二(简单/死板/不常用)

回溯

上一篇博文讲述了 Gateway 的简单使用,但是有遗留的问题,就是调用的微服务地址竟然是写死的,这样一旦微服务的地址发生更改,那么配置文件也需要更改。

对于这个问题,是不是有点眼熟?对的,前面的博文有讲述,就是为了解决这个问题所以我们引进了服务治理 Nacos 。这篇博文我们就讲述一下 Gateway 和 Nacos 的整合。

Gateway 整合 nacos

在市面上,对于 Gateway 整合 nacos 的用法通常有两种,这边简要介绍一下。

这里的操作都是基于上一篇博客的操作,若有疑问,可以参考SpringCloud Alibaba - Gateway 入门案例(一)(网关介绍 / Gateway 介绍 / Gateway 快速入门)

方式一(复杂/灵活/常用)

首先添加pom依赖,完整pom如下

  <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version></parent><dependencies><!--gateway网关 不能引入starter-web--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.1.0.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.0.RELEASE</version></dependency></dependencies>

然后在启动类添加 @EnableDiscoveryClient


在配置文件中加上

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848 #nacos地址gateway:discovery:locator:enabled: true #让 gateway可以发现nacos中的微服务

修改之前uri的值,之前的uri值是写死的路径,现在我们可以放上微服务注册在nacos上的服务名。

最终修改后的配置文件如下:

server:port: 7777
spring:application:name: api-gatewaycloud:gateway:discovery:locator:enabled: true #让gateway可以发现nacos中的微服务routes: # 路由数组  指当请求满足什么样的条件的时候,转发到哪个微服务上- id: nacosxfz_route #当前路由标识,要求唯一 (默认值uuid,一般不用,需要自定义)uri: lb://test-scz #请求最终要被转发的地址   lb指的是从nacos中按照名称获取微服务,并遵循负载均衡策略order: 1 #路由优先级,数字越小,优先级越高predicates: #断言 判断条件,返回值是boolean 转发请求要返回的条件 (可以写多个)、- Path=/scz_server/** #当请求路径满足path指定的规则时,此路由信息才会正常转发filters: #过滤器(在请求传递过程中,对请求做一些手脚)- StripPrefix=1 # 在请求转发之前去掉一层路径nacos:discovery:server-addr: 127.0.0.1:8848

ps(lb指的是从nacos中按照名称获取微服务,并遵循负载均衡策略)

test-scz 是需要调用的微服务注册在nacos上的名字。

接下来进行测试



请求成功,证明 Gateway 整合 nacos 成功。

此方式企业中运用的比较多,原因是 predicatesfilters 可以自定义配置,相对而言较为灵活。这两个参数在后面的章节会进行较为详细的讲解。

方式二(简单/死板/不常用)

为什么简单?因为真的非常简单,步骤和方式一一样,但是!配置文件不用那么多花里胡哨的配置。

routes 可以不用配置!!!

最终yml配置:

server:port: 7777
spring:application:name: api-gatewaycloud:gateway:discovery:locator:enabled: true #让gateway可以发现nacos中的微服务nacos:discovery:server-addr: 127.0.0.1:8848

访问成功!

但是:我们要注意,此时它默认 predicates Path 和需要调用的微服务名称相同,所以可以根据访问微服务名称作为路径访问微服务。

因为方便,而抛弃了更灵活的配置,是不是有一点吃了芝麻丢了西瓜呢???

Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos /(非阿里组件))相关推荐

  1. Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

    Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...

  2. Spring Cloud Alibaba基础入门,一周学会基操!

    Spring Cloud Alibaba基础入门,一周学会基操! 服务拆分: 1.不同微服务,不要重复开发相同业务 2.微服务数据独立,不要访问其它微服务的数据库 3.微服务可以将自己的业务暴露为接口 ...

  3. 开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》

    Spring Cloud Alibaba 脱胎于阿里中间件团队内部,经受了阿里多年海量业务场景的考验,是目前最成熟.功能最丰富也最有前景的 Spring Cloud 实现.相信在未来 Spring C ...

  4. 【技术手册】Java 开发者必备手册《Spring Cloud Alibaba 从入门到实战》

    Java 开发者必备手册<Spring Cloud Alibaba 从入门到实战> 简介 大咖寄语 目录 精彩导读 基础知识篇 分布式配置 服务注册与发现 分布式服务调用 服务熔断和限流 ...

  5. Spring Cloud Alibaba 快速入门(七):Gateway微服务网关

    前言:在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关.微服务网关处理了路由转发,负载均衡,缓存,权限校验,监控,限流控制,日志等.Spring Cloud Gateway是Spring ...

  6. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...

  7. Spring Cloud Alibaba系列使用(二)----Nacos注册中心

    1|1Spring Cloud Alibaba 介绍 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spri ...

  8. Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka

    为什么80%的码农都做不了架构师?>>>    自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作<Spring C ...

  9. Spring Cloud Alibaba 之 RPC 消息:Dubbo 与 Nacos 体系如何协同作业

    上一节我介绍了什么是 OpenFeign 通信组件,讲解了如何基于 OpenFeign 实现微服务间的高可用通信.本文我们将继续探讨微服务通信话题,了解阿里巴巴自家的 RPC 框架 Dubbo 是如何 ...

  10. Spring Cloud Alibaba 2.2.6发布:新增Nacos注册快速失败的配置

    7月12日消息,Spring Cloud Alibaba新版本2.2.6发布,该版本适配Spring Cloud Hoxton.SR9. 下面一起来看看该版本内容: 特性增强 Nacos 支持服务注册 ...

最新文章

  1. SpringBoot整合RabbitMQ-整合演示
  2. win2000输入密码后循环登陆,不能进入用户桌面
  3. Windows Server 2012改造成Windows8的方法(转载)
  4. opencv 多线程_深度学习和OpenCV的对象检测(MobileNet SSD视频流实时识别)
  5. 通过简单的Linux命令,编译一个C语言代码
  6. java左上角图标太小_Eclipse在高分屏下图标过小的解决方法
  7. mysql备份还原数据库操作系统_mysql 命令行备份还原数据库操作
  8. Bash中的位置参数和特殊参数
  9. mac配置jenkins遇到的问题及解决办法
  10. 纽约部署免费千兆Wi-Fi 30秒可下一部电影
  11. 关于python中字典描述正确的是_python总结七
  12. 手机U盘制作成系统启动盘后在手机端无法识别
  13. 【千峰网安学习】利用PE破解系统密码
  14. 超级简单的方法重装win10系统
  15. ⅰsee是什么意思_l see 什么意思
  16. 步步学习自定义View:Hencoder 精简版学习笔记(一)
  17. MongoDB笔记之简单的增删改查
  18. 盘点2017年的非技术阅读
  19. B站科技区 up主 关注排名
  20. 天水訟 (易經大意 韓長庚)

热门文章

  1. 超链接一般有两种表现形式_超链接的类型
  2. 关于《信号与系统》单边z变换位移性质公式的理解
  3. 超图(HyperGraph)学习,看这一篇就够了
  4. Android 10.0 禁用Recent键(任务键)
  5. BUG记录:安卓9.0 EditText输入框不显示字符问题
  6. 织梦dede如何让channelartlist标签支持currentstyle属性
  7. JVM底层原理+四大垃圾回收算法详解-周阳老师
  8. table边框不显示
  9. Android 休眠状态对Camera预览的影响
  10. [Activity] springMVC集成Activiti WebEditor 在线流程设计器