一、nacos配置中心的配置

使用nacos作为配置中心,不需要再到远端仓库拉取配置文件。
详细的nacos控制台配置参见官方链接

二、服务的注册

  1. 创建项目并引入依赖
<!--引入nacos client的依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. 配置注册地址
server.port=8789 #指定当前服务端口
spring.application.name=nacosclient#指定服务名称
spring.cloud.nacos.server-addr=localhost:8848#指定nacos服务地址
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr} #指定注册中心地址
management.endpoints.web.exposure.include=*#暴露所有web端点
  1. 加入启动服务注册注解
@SpringBootApplication
@RefreshScope //实现nacos自动配置刷新
@EnableDiscoveryClient
public class Application {public static void main(String[] args) {SpringApplication.run(Configclient9066Application.class, args);}
}
  1. 查看nacos的服务列表

已经注册到nacos上

三、服务的调用(基于OpenFeign)

参考另一篇文章

四、修改配置文件自动刷新

我们知道,以前基于springBus和git远程仓库的文件配置,如果配置文件有修改,我们都要手动发送一个refresh请求,手动刷新,而使用nacos作为配置中心,可以做到修改配置文件时自动刷新配置。默认情况下nacos已经实现了自动配置刷新功能,如果需要刷新配置直接在控制器中加入@RefreshScope注解即可。

1.控制器加入@RefreshScope

@RestController
@RefreshScope //实现nacos自动配置刷新
@Slf4j
public class TestController {@Value("${user.name}")private String name;@GetMapping("/test/test")public String test(){log.info("当前获取配置中name为: [{}]",name);return "当前获取配置中name为:"+name;}
}
  1. 配置文件告诉程序到远程nacos服务器拉取配置信息
#nacos服务器链接
spring.cloud.nacos.server-addr=http://xxx.xxx.xxx.xxx:8848
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr}
#设置group
spring.cloud.nacos.config.group=DEFAULT_GROUP
#服务名
spring.application.name=config
spring.profiles.active=prod
#配置文件格式
spring.cloud.nacos.config.file-extension=properties

nacos配置文件:


访问:http://localhost:9066/test/test

修改nacos配置文件

再次访问:

这样就实现了自动刷新

五、命名空间

namespace命名空间是nacos针对于企业级开发设计用来针对于不同环境的区分,比如正在企业开发时有测试环境,生产环境,等其他环境,因此为了保证不同环境配置实现隔离,提出了namespace的概念,默认在nacos中存在一个public命名空间所有配置在没有指定命名空间时都在这个命名空间中获取配置,在实际开发时可以针对于不能环境创建不同的namespace空间。默认空间不能删除!
一般来说,对于命名空间,我们有两种分配形式:

  • 第一种:项目名称作为命名空间,服务名称作为group,dataid用来区分不同的生产环境
  • 第二种:生产环境作为命名空间,项目名作为group,dataid用来区分不同的服务名称

笔者在这里建议使用第二种,使用方式如下:

  1. 命名空间,如下:笔者建立了3个命名空间,分别用于部署,开发和测试环境,对应的配置如下:


    可以看到笔者·分别配置了prod环境下,app1和app2两个不同的项目的服务,也配置了dev环境下,app1和app2两个不同的项目的服务。注意:users-dev、products-dev等配置文件的前缀,一定要与yaml中配置的服务名称一致。#Nacos 默认会在启动的时候去配置中心上读取名为
${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}文件

大致的远程配置信息如下:

  1. 引用不同的命名空间
  • 测试类
@RestController
@RefreshScope //实现nacos自动配置刷新
@Slf4j
public class TestController {@Value("${user.name}")private String name;@GetMapping("/test/test")public String test(){log.info("当前获取配置中name为: [{}]",name);return "当前获取配置中name为:"+name;}
}
  • 配置文件bootstrap.properties
# config server addr
spring.cloud.nacos.server-addr=http://xxx.xxx.xxx.xxx:8848
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr}#prod命名空间
spring.cloud.nacos.config.namespace=1238cda6-4a25-45ef-8945-d2323d77db53
#dev命名空间
#spring.cloud.nacos.config.namespace=23eaa036-ff00-4888-b411-cd0f483318a7#切换不同的项目
spring.cloud.nacos.config.group=app2#切换不同的微服务
spring.application.name=users#切换不同的环境
spring.profiles.active=prod#切换不同的配置文件后缀
spring.cloud.nacos.config.file-extension=properties

访问:localhost:9092/test/test

接下来只要在配置文件中,切换不同的环境,不同的项目,不同的服务,就能得到不同的配置参数。

六、将服务所有配置移至nacos

以配置gateway为例:

  • properties方式
# config server addr
spring.cloud.nacos.server-addr=http://xxx:8848
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr}
#Nacos 默认会在启动的时候去配置中心上读取名为
#${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.f#ile-extension}文件
#prod命名空间
spring.cloud.nacos.config.namespace=8fcc7735-0589-401b-bf38-b791c21f52d9
spring.cloud.nacos.discovery.namespace=8fcc7735-0589-401b-bf38-b791c21f52d9
#切换组(不同的app)
spring.cloud.nacos.config.group=GATEWAY_TEST_GROUP
#服务名称
spring.application.name=gateway
#切换不同的生产环境
spring.profiles.active=dev
#指定的配置文件格式
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.enabled=true
  • yml方式(注意discovery和config都要配置addr和namespace)
spring:application:name: gatewayprofiles:active: devcloud:nacos:config:namespace: "8fcc7735-0589-401b-bf38-b791c21f52d9"group: "GATEWAY_TEST_GROUP"file-extension: yamlenabled: trueserver-addr: xxx:8848discovery:namespace: "8fcc7735-0589-401b-bf38-b791c21f52d9"server-addr: xxx:8848

远程nacos的配置文件:

这样以后再配合nacos的配置自动刷新功能,就可以比较方便地修改项目配置了

Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间相关推荐

  1. 修改12306自动刷新时间

    12306的自动刷新提交订单是用js实现的,因此,在看过http://www.thinkful.cn/archives/390.html博文后受启发. 自动刷新时间变量 autoSearchTime变 ...

  2. 解决eclipse+tomcat开发时候修改配置文件自动重启服务器问题

    如图打开server.xml: 如图修改reloadable="false",禁止重启 一般在开发debug模式下都是使用可自动重启模式,这个一般设置为true.

  3. 微服务2——服务的注册,调用(Nacos服务注册中心+服务调用+调用负载均衡)sca-comsumersca-provider

    一.Nacos的安装和构建  以及启动 其官网地址如下: Nacos官网 1.安装前提: 第一:确保你电脑已配置JAVA_HOME环境变量(Nacos启动时需要),例如: 第二:确保你的MySQL版本 ...

  4. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  5. 聊一聊nacos是如何进行服务注册的

    前言 一.NamingService介绍 二.服务注册源码剖析 三.心跳机制源码剖析 总结 前言 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现 ...

  6. Spring Cloud【Finchley】-02服务发现与服务注册Eureka + Eureka Server的搭建

    文章目录 服务发现组件概述 Eureka概述 Eureka原理 Maven父子工程的搭建 Eureka Server的搭建 新建 Maven Module 添加spring-cloud-starter ...

  7. .net core grpc consul 实现服务注册 服务发现 负载均衡(二)

    在上一篇 .net core grpc 实现通信(一) 中,我们实现的grpc通信在.net core中的可行性,但要在微服务中真正使用,还缺少 服务注册,服务发现及负载均衡等,本篇我们将在 .net ...

  8. Angular中怎样创建service服务来实现组件之间调用公共方法

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  9. Dubbo搭建HelloWorld-搭建服务提供者与服务消费者并完成远程调用(附代码下载)

    场景 Dubbo简介与基本概念: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555224 Dubbo环境搭建-ZooKe ...

最新文章

  1. GAN和PS合体会怎样?东京大学图像增强新研究:无需配对图像,增强效果还可解释...
  2. 大厂首发:java转算法工程师
  3. ib网卡命令_infiniband网卡安装、使用总结
  4. 学点 C 语言(20): 数据类型 - 指针
  5. 为什么现在老师这么难,值得大家深思
  6. WiFi生成二维码卡片共享源码
  7. 计算机桌面文件夹排序,电脑桌面文件整理前后对照
  8. 开发过程中的注意事项,想到哪写到哪
  9. Web Hacking 101 翻译完成
  10. 富文本编辑器CKEditor 5开发环境搭建
  11. sslv3 poodle漏洞 检测解决方法
  12. 中国3G蛋糕1.5万亿 10倍三峡工程
  13. caffe 6中优化方法并附带 对应的solver。prototxt代码
  14. MacOS删除系统自带软件-MacOS10.15 Catalina删除系统系统软件
  15. 修改植物大战僵尸阳关代码
  16. UltraISO打开Ubuntu镜像ISO文件只有EFI文件夹
  17. 阿里云服务器好用吗?
  18. 【数据挖掘】聚类分析
  19. mdltxdy mjj的英语单词(4.2洛谷比赛中的字符串问题)
  20. Gartner:2018人工智能技术成熟度曲线

热门文章

  1. MySQL数据迁移到SQL Server
  2. 嘿!不用太过于担心的单点故障
  3. Ubuntu16.04下Hadoop的本地安装与配置
  4. discuz数据库相关表
  5. tom大叔blog--------深入理解javascript系列-----------笔记
  6. ORA-01092: ORACLE 例程终止 强行断开连接
  7. Linux Kernel 3.8.8/3.4.41/3.0.74 发布
  8. Keras学习笔记:函数式模型
  9. 在linux系统下使用C语言操作临时文件
  10. 【Matlab】parfor并行运算如何显示进度条?