1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos /(非阿里组件))

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

时间:2018-09-14 08:02:06

相关推荐

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

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: 7777spring: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: 7777spring:application:name: api-gatewaycloud:gateway:discovery:locator:enabled: true #让gateway可以发现nacos中的微服务nacos:discovery:server-addr: 127.0.0.1:8848

访问成功!

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。