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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot 拦截器的坑 WebMvcConfigurationSupport 失效

大家好,我是烤鸭: 今天遇到一个拦截器失效的问题,具体看源码分析下。 环境: springboot 2.x spring 5.x 1. 先说下业务场景 需求是对请求进入时和离开时对和线程id绑定,用的Threadlocal,现在有一个问题&#xff0…

skywalking 源码解析——多线程变量传递 EnhancedInstance

大家好,我是烤鸭: 今天分享下 skywalking源码,正好自己用到相关的内容了。 1. 拦截点 三个主要的拦截器、构造方法、静态方法和示例方法,每个切面里都可以重写这些方法,并且指定进入的拦截器。 2. trace 相关内容 …

2018-2019-1 20165303 实验五 通讯协议设计

任务一 Linux下OpenSSL的安装与使用 前往OpenSSL官网,选择打开OpenSSL源码下载地址,按照下图所示方法下载压缩包“openssl-master.zip Linux下使用unzip openssl-master.zip命令解压 安装的具体命令如下:$ ./config$ make$ make test$ make i…

从字节码看 finally关键字、异常表

大家好,我是烤鸭: 今天说下 finally 这个关键字。 1. 认识finally finally 总是跟 try、catch一起出现,finally是执行方法结束一定要执行的代码,比如流关闭等等。 finally是如何实现在异常捕捉之后保证执行 finally 代码块里的…

Unhandled exception: org.springframework.beans.factory.BeanDefinitionStoreException

大家好,我是烤鸭: ​ 使用 idea 莫名其妙的错误。 无法编译 异常已经 catch 住了,提示明显是有问题的。 再看一下 maven install 的结果 Error:(99, 100) java: 无法访问org.springframework.core.env.EnvironmentCapable 找不到org.spr…

springcloud gateway 源码解析、请求响应流程、第三方响应结果在 gateway 的经过

大家好,我是烤鸭: 1. 官方介绍 官方文档: 看的是 2.2.5.RELEASE 版本的 https://docs.spring.io/spring-cloud-gateway/docs/2.2.5.RELEASE/reference/html/ 看一下官方这段说明,gateway 使用的是 webflux 和 reactor&#x…

改logback logstash-logback-encoder 框架本身的日志级别

大家好,我是烤鸭: 最近遇到一个问题,想把logback框架本身的日志级别修改,需要 logstash-logback-encoder 6.1 以上的版本才可以。 直接上代码 这里修改的不是业务日志级别,是 logback 框架本身(确切地说是 logstash…

idea首次创建新模块的详细操作

依赖网址:https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/3.1.0 https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api/2.3.1 https://mvnrepository.com/artifact/org.springframework/spring-webmvc 创建文件夹 修改版本号 配…

markdown 常用语法总结 - 个人版

这里并不是要总结所有的 markdown 语法,只是总结笔者自己撰写博客时常用的一些 markdown 语法。 1 图片设置 1.1 设置图片位置 利用markdown在编写文档时插入图片是默认靠左,有些时候将图片设置为居中时可以更加的美观,这时就需要在图片的信息…

PostgreSQL 、springboot 、spring data jpa 集成

项目地址:https://gitee.com/zhxs_code/PostgreSQL_springboot_jpa_demo.git 增删查改都已经实现。 重点部分: 1.定义自己的方言。 1 package com.zxl.postgrespringdemo.config.dialect;2 3 import org.hibernate.dialect.PostgreSQL94Dialect;4 import…

RedisTemplate value序列化导致的问题

大家好,我是烤鸭: ​ 今天分享一个redisTemplate 使用时,value 序列化的问题。 1. 问题描述 其实我最开始遇到的问题是: stringRedisTemplate.opsForSet().isMember(key,value)一直返回false问题,下边博客给出了…

[css] 如何实现换肤功能?

[css] 如何实现换肤功能? css 换肤常见方案 是通过 less/sass/postcss 等css 预处理器,通过它们自身的变量用法,设置不同变量,生成不同的主题样式,但是这些样式都是会被打包成常量,我们只能在编译之前修改…

日志 中文乱码、nacos 中文乱码、saltstack 中文乱码、docker中文乱码

大家好,我是烤鸭: ​ 今天分享一个 saltstack 中文乱码 的问题。 问题说明 由于项目之前没有接入公司的发布系统,今天接入之后发现日志乱码,不仅如此,从nacos获取到的中文参数也是乱码。于是猜想是发布系统遗留了一…

redis出现过多command 慢查询slowlog出现command命令

大家好,我是烤鸭: 今天分享一个问题,一个关于redis slowlog,执行过多 command命令的问题。 问题来源 所有走redis 的接口tp99和平均耗时是原来的两倍不止,运维说redis 的qps也翻倍了。查了下slowlog,发现…

springcloud gateway 使用nacos 动态过滤器 记一次线上网关升级cpu升高的问题

大家好,我是烤鸭: ​ 网关升级,想使用 springcloud gateway nacos 动态过滤器配置(原来是硬编码的方式),升级之后出了一些问题(cpu升高,ygc频繁),记录一下。 关于 springcloud gateway 集成 nacos 可以看…

【1】生产者-消费者模型的三种实现方式

(手写生产者消费者模型,写BlockingQueue较简便 ) 1、背景 生产者生产数据到缓冲区中,消费者从缓冲区中取数据。 如果缓冲区已经满了,则生产者线程阻塞; 如果…

springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下 springboot mybatis-plus 和 druid 的yml 配置文件。 pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency…

实验吧Web-易-天网管理系统(php弱类型,==号)

打开网页&#xff0c;查看源码&#xff0c;看到 <!-- $test$_GET[username]; $testmd5($test); if($test0) --> 说明用户名需要加密之后为0。 对于PHP的号&#xff0c;在使用 运算符对两个字符串进行松散比较时&#xff0c;PHP会把类数值的字符串转换为数值进行比较&…

个人的博客搭建(持续更新)

最近的CSDN的博客阅读体验非常的糟糕&#xff0c;恰好自己也一直想搭建一个属于自己的网站&#xff0c;放下自己的技术心得情感体会&#xff0c;从零开始慢慢搭建项目磨练技术&#xff0c;以后也把自己新习得的技术放在里面增加自己的学习乐趣。 一&#xff0c;搭建基本的项目模…

用Java实现图片验证码功能

一、什么是图片验证码&#xff1f; 可以参考下面这张图&#xff1a; 我们在一些网站注册的时候&#xff0c;经常需要填写以上图片的信息。 1、图片生成实体类&#xff1a; 1 package com.hexianwei.graphic;2 3 import java.awt.Color;4 import java.awt.Font;5 import java.aw…