【SpringCloudAlibaba系列--nacos配置中心】

Nacos做注册中心以及使用docker部署nacos集群的博客在这:

容器化部署Nacos:从环境准备到启动
容器化nacos部署并实现服务发现(gradle)
使用docker部署nacos分布式集群

下面介绍如何使用nacos做配置中心

groovy 复制代码
    // 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中需要写的,下面有详细解释
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需要重点注意,不是你起的名字,而是命名空间给的代码,如图

  • 下面是云端配置的内容,仅做参考,根据你自己的配置来改

yml 复制代码
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,是你这份配置叫什么
相关推荐
miss writer19 分钟前
Redis分布式锁释放锁是否必须用lua脚本?
redis·分布式·lua
m0_7482548826 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
蜜獾云31 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
字节程序员2 小时前
Jmeter分布式压力测试
分布式·jmeter·压力测试
年薪丰厚2 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
zhangj11252 小时前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀2 小时前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\2 小时前
二进制部署k8s
云原生·容器·kubernetes
Source、2 小时前
k8s-metrics-server
云原生·容器·kubernetes
颜淡慕潇2 小时前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes