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-feign
cloud:
nacos:
config:
username: nacos
password: nacos
server-addr: xxx.xxx.xx.xx:8848
file-extension: yml
group: HardwareServices
namespace: e8c3bd64-52ff-494e-a51f-a907d9f098b8
config:
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:8848
username: your_nacos_name
password: your_pss
# 微服务名称
application:
name: equipment-management
jpa:
# 指定是否在spring容器启动时创建表,默认false
generate-ddl: true
show-sql: true
hibernate:
# 指定应用重启时不重新更新表
ddl-auto: none
# 关闭前端访问的懒加载机制
open-in-view: false
# 配置数据源
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://xxx.xxx.xx.xx/rdt_hardware?serverTimezone=Asia/Shanghai&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
username: your_name
password: 'your_pss'
druid:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 日志
logging:
# 控制台日志输出格式
pattern:
console: level-%level %msg%n
level:
# 控制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: trace
server:
port: 8009
servlet:
encoding:
charset: utf-8
# 确保字符集总是被应用
force: true
这里面有几个关键点:
- server下的port是你这个服务要在哪个端口启动
- server-addr则是你nacos监听的端口
- application: name: equipment-management这里是你的微服务名称,和dataId是有区别的,dataId是equipment-management.yml,是你这份配置叫什么