Nacos做注册中心以及使用docker部署nacos集群的博客在这:
容器化部署Nacos:从环境准备到启动
容器化nacos部署并实现服务发现(gradle)
使用docker部署nacos分布式集群
下面介绍如何使用nacos做配置中心
- 首先要进行nacos-config的引入,引入的版本要根据你的需求来,如果完全不知道用什么版本可以参考我的配置:容器化部署Nacos:从环境准备到启动
// nacos-config引入implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: '2022.0.0.0'
- nacos做配置中心的原理是将你的yml配置上传到nacos服务器中,你的服务启动的时候会根据namspace-group-dataId的定位方式去找到你的配置
- 这是微服务的yml中需要写的,下面有详细解释
spring:application:name: equipment-management-feigncloud:nacos:config:username: nacospassword: nacosserver-addr: xxx.xxx.xx.xx:8848file-extension: ymlgroup: HardwareServicesnamespace: e8c3bd64-52ff-494e-a51f-a907d9f098b8config:import:- optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension}
-
上文中 name: equipment-management-feign 这一项是你的配置的名称,是你云端的DataId
-
上文中的group也是你云端的group
-
上文中的namespace需要重点注意,不是你起的名字,而是命名空间给的代码,如图
-
下面是云端配置的内容,仅做参考,根据你自己的配置来改
spring:cloud:nacos:discovery:# nacos注册中心地址server-addr: xxx.xxx.xx.xx:8848username: your_nacos_namepassword: your_pss# 微服务名称application:name: equipment-managementjpa:# 指定是否在spring容器启动时创建表,默认falsegenerate-ddl: trueshow-sql: truehibernate:# 指定应用重启时不重新更新表ddl-auto: none# 关闭前端访问的懒加载机制open-in-view: false# 配置数据源datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xx.xx/rdt_hardware?serverTimezone=Asia/Shanghai&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=falseusername: your_namepassword: 'your_pss'druid:# 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: false# 日志
logging:# 控制台日志输出格式pattern:console: level-%level %msg%nlevel:# 控制springboot 启动时显示的日志级别root: info# hibernate相关的日志级别org.hibernate: info# 控制自己写的代码运行时显示的日志级别com.rdt: debug# show-sql: true 的前提下显示sql中的动态参数值org.hibernate.type.descriptor.sql.BasicBinder: trace# show-sql: true 的前提下显示sql的查询结果org.hibernate.type.descriptor.sql.BasicExtractor: traceserver:port: 8009servlet:encoding:charset: utf-8# 确保字符集总是被应用force: true
这里面有几个关键点:
- server下的port是你这个服务要在哪个端口启动
- server-addr则是你nacos监听的端口
- application: name: equipment-management这里是你的微服务名称,和dataId是有区别的,dataId是equipment-management.yml,是你这份配置叫什么