欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

springcloud gateway 使用nacos 作为配置中心 和 注册中心

发布时间:2023/12/10 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 springcloud gateway 使用nacos 作为配置中心 和 注册中心 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

大家好,我是烤鸭:

今天分享下 springcloud gateway 使用nacos作为配置中心和注册中心,主要是还是配置中心。

源码下载:

https://gitee.com/fireduck_admin/springcloud-gateway-nacos-demo

1.  本地部署nacos

下载 https://github.com/alibaba/nacos/releases/tag/1.3.2

本地新建nacos数据库,执行 conf/nacos-mysql.sql

修改 conf/application.properties 关于数据库的配置

spring.datasource.platform=mysql### Count of DB: db.num=1### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=root

启动 ./startup.cmd -m standalone,访问 localhost:8848 如图

2.  网关项目搭建

这里需要注意的是普通项目和 gateway项目 有些不一样

比如普通项目的 bootstrap.yml,这里不需要写nacos 地址,指定加载的配置文件 -Dspring.profiles.active=dev/pro

spring:cloud:nacos:config:file-extension: ymlgroup: demo-dickprefix: applicationprofiles:active:'@profiles.active@'

在 bootstrap-dev.yml 里再写地址

spring:cloud:nacos:config:server-addr: localhost:8848

但是 gatewway 项目不行,加载顺序的问题,必须在 bootstrap.yml 指定地址。

${} 可以读取启动参数,需要在启动时加上 -Dnacos-server-addr=123.1.1.2:8848,不写的话就默认localhost:8848

spring:cloud:nacos:config:file-extension: ymlgroup: gatewayprefix: applicationserver-addr: ${nacos-server-addr:localhost:8848}

3.  nacos集成

gateway 项目nacos 配置,lb://后面的是其他服务注册在nacos上的名称,也就是spring.applicaiton.name

management:endpoints:web:exposure:include: '*' server:port: 8081servlet:context-path: / spring:application:name: gatewaycloud:gateway:routes:- id: tick-routefilters:- StripPrefix=1predicates:- name: Pathargs[pattern]: /tick/**uri: lb://demo-tick1- id: tick-routefilters:- StripPrefix=1predicates:- name: Pathargs[pattern]: /dick/**uri: lb://demo-dicknacos:discovery:server-addr: localhost:8848password: nacosusername: nacos

启动成功拉取nacos配置(端口 8081 生效)

另外两个项目就不贴了,源码地址在文章开始。

4.  注册中心

可以看到3个服务都注册成功了。

正常情况下访问 http://localhost:8081/dick/dick/abc 和 http://localhost:8081/tick/tick/abc 都可以返回。

动态修改网关路由:

更新gateway nacos 配置后,lb://demo-tick 改为 demo-tick1 立即生效,无需重启。由于找不到 demo-tick1 所以报错。

5.  最后说一下

关于上面地址/dick/dick 第一个是网关转发的路由,第二个是服务本身的 context-path。

而如果网关项目用的是域名/gateway 转发的话,需要为网关项目加 context-path,具体可以参考 

https://blog.csdn.net/Angry_Mills/article/details/108132203

总结

以上是生活随笔为你收集整理的springcloud gateway 使用nacos 作为配置中心 和 注册中心的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。