精通SpringCloud/Boot配置文件在Nacos中的配置

目录

1 什么是nacos? 

Nacos 地图

 Nacos 生态图

2 springcloud中精通Nacos的配置中心

目录结构

日志配置文件

原始的配置文件

使用Nocas对配置文件进行拆分

引用nacos中的配置文件

共享nacos中的配置文件操作

我们使用同样的方法将日志配置提取出来


1 什么是nacos? 

        Nacos是一个开源的分布式系统服务注册中心和配置管理平台。它可以帮助开发人员快速地实现微服务的注册与发现、动态配置管理、服务健康监测等功能。简单来说,Nacos就是一个能够让你更方便地管理和使用微服务的工具。

Nacos 地图

 Nacos 生态图

2 springcloud中精通Nacos的配置中心

目录结构

日志配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="180" packages="">
    <properties>
        <property name="logdir">logs</property>
        <property name="PATTERN">%date{YYYY-MM-dd HH:mm:ss,SSS} %level [%thread][%file:%line] - %msg%n%throwable</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${PATTERN}"/>
        </Console>

        <RollingFile name="ErrorAppender" fileName="${logdir}/error.log"
            filePattern="${logdir}/$${date:yyyy-MM-dd}/error.%d{yyyy-MM-dd-HH}.log" append="true">
            <PatternLayout pattern="${PATTERN}"/>
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>

        <RollingFile name="DebugAppender" fileName="${logdir}/info.log"
            filePattern="${logdir}/$${date:yyyy-MM-dd}/info.%d{yyyy-MM-dd-HH}.log" append="true">
            <PatternLayout pattern="${PATTERN}"/>
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>
        
        <!--异步appender-->
         <Async name="AsyncAppender" includeLocation="true">
            <AppenderRef ref="ErrorAppender"/>
            <AppenderRef ref="DebugAppender"/>
        </Async>
    </Appenders>
    
    <Loggers>
         <!--过滤掉spring和mybatis的一些无用的debug信息-->
        <logger name="org.springframework" level="INFO">
        </logger>
        <logger name="org.mybatis" level="INFO">
        </logger>
        <logger name="cn.itcast.wanxinp2p.consumer.mapper" level="DEBUG">
        </logger>

        <logger name="springfox" level="INFO">
        </logger>
		<logger name="org.apache.http" level="INFO">
        </logger>
        <logger name="com.netflix.discovery" level="INFO">
        </logger>
        
        <logger name="RocketmqCommon"  level="INFO" >
		</logger>
		
		<logger name="RocketmqRemoting" level="INFO"  >
		</logger>
		
		<logger name="RocketmqClient" level="WARN">
		</logger>

        <logger name="org.dromara.hmily" level="WARN">
        </logger>

        <logger name="org.dromara.hmily.lottery" level="WARN">
        </logger>

        <logger name="org.dromara.hmily.bonuspoint" level="WARN">
        </logger>
		
        <!--OFF   0-->
        <!--FATAL   100-->
        <!--ERROR   200-->
        <!--WARN   300-->
        <!--INFO   400-->
        <!--DEBUG   500-->
        <!--TRACE   600-->
        <!--ALL   Integer.MAX_VALUE-->
        <Root level="DEBUG" includeLocation="true">
            <AppenderRef ref="AsyncAppender"/>
            <AppenderRef ref="Console"/>
            <AppenderRef ref="DebugAppender"/>
        </Root>
    </Loggers>
</Configuration>

原始的配置文件

原始的Blog-Article-API模块的配置文件

server:
  port: 8081
  servlet:
    context-path: /Api

#  port: 63041
#微服务配置
spring:
  application:
    name: Blog-Article-Api #服务名content-api-dev.yaml
  cloud:
    nacos:
      discovery: #服务注册相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
      config: #配置文件相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
        file-extension: yaml
        refresh-enabled: true
      server-addr: 172.18.229.62:8848
  profiles:
    active: dev   #环境名

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yyy?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
    username: root
    password: xx

swagger:
  title: "幻梦博客系统"
  description: "幻梦博客,你的选择"
  base-package: com.scm.controller
  enabled: true
  version: 1.0.0
  #        extension-configs:
  contact:
    email: [email protected]
    name: "Lancer"
logging:
  config: classpath:log4j2-dev.xml  # 日志文件配置路径

原始的Blog-Article-Service的配置文件

#微服务配置
spring:
  application:
    name: Blog-Article-Service #服务名content-api-dev.yaml
  cloud:
    nacos:
      config: #配置文件相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
        file-extension: yaml
        refresh-enabled: true
      server-addr: 172.18.229.62:8848
  profiles:
    active: dev   #环境名

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yyy?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
    username: root
    password: xx


logging:
  config: classpath:log4j2-dev.xml  # 日志文件配置路径

使用Nocas对配置文件进行拆分

详细请看SpringCloudAliBaba学习之Nacos简约学习教程_桂亭亭的博客-CSDN博客

进入Nacos中,新建一个配置文件

回到源代码中我们将Service模块中的部分配置文件,拆分到nacos中

新建配置

注意Data ID的书写规范。内容对应上图中的配置文件中的

这里的配置文件的内容为一个数据库的配置信息。

 

我们看到这里就已经上传成功了。

引用nacos中的配置文件

上图我们已经在nacos中的配置了数据库相关的配置文件

 Blog-Article-API模块配置文件更改为如下:注意点是

server:
  port: 8081
  servlet:
    context-path: /Api

#  port: 63041
#微服务配置
spring:
  application:
    name: Blog-Article-Api #服务名content-api-dev.yaml
  cloud:
    nacos:
      discovery: #服务注册相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
      config: #配置文件相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
        file-extension: yaml
        refresh-enabled: true
#        配置文件引用
        extension-configs:
          - data-id: Blog-Article-Service-${spring.profiles.active}.yaml
            group: Blog-Cloud
            refresh: true
      server-addr: 172.18.229.62:8848
  profiles:
    active: dev   #环境名

swagger:
  title: "幻梦博客系统"
  description: "幻梦博客,你的选择"
  base-package: com.scm.controller
  enabled: true
  version: 1.0.0
  contact:
    email: [email protected]
    name: "Lancer"



logging:
  config: classpath:log4j2-dev.xml  # 日志文件配置路径

启动项目测试

共享nacos中的配置文件操作

在nacos中新建swagger配置,作为所有项目的swagger配置

如下即为成功。

 Blog-Article-API模块配置文件更改为如下:注意点是

server:
  port: 8081
  servlet:
    context-path: /Api

#  port: 63041
#微服务配置
spring:
  application:
    name: Blog-Article-Api #服务名content-api-dev.yaml
  cloud:
    nacos:
      discovery: #服务注册相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
      config: #配置文件相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
        file-extension: yaml
        refresh-enabled: true
#        配置文件引用
        extension-configs:
          - data-id: Blog-Article-Service-${spring.profiles.active}.yaml
            group: Blog-Cloud
            refresh: true
        shared-configs:
          - data-id: Swagger-${spring.profiles.active}.yaml
            group: Blog-Cloud-Common
            refresh: true
      server-addr: 172.18.229.62:8848
  profiles:
    active: dev   #环境名




logging:
  config: classpath:log4j2-dev.xml  # 日志文件配置路径

启动项目测试

--》访问

http://localhost:8081/Api/swagger-ui.html

我们使用同样的方法将日志配置提取出来

新建日志配置文件

如下即为成功

 Blog-Article-API模块配置文件更改为如下:注意点是

server:
  port: 8081
  servlet:
    context-path: /Api

#  port: 63041
#微服务配置
spring:
  application:
    name: Blog-Article-Api #服务名content-api-dev.yaml
  cloud:
    nacos:
      discovery: #服务注册相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
      config: #配置文件相关配置
        enabled: true
        namespace: dev202305
        group: Blog-Cloud
        file-extension: yaml
        refresh-enabled: true
#        配置文件引用
        extension-configs:
          - data-id: Blog-Article-Service-${spring.profiles.active}.yaml
            group: Blog-Cloud
            refresh: true
        shared-configs:
          - data-id: Swagger-${spring.profiles.active}.yaml
            group: Blog-Cloud-Common
            refresh: true
          - data-id: Logging-${spring.profiles.active}.yaml
            group: Blog-Cloud-Common
            refresh: true  
      server-addr: 172.18.229.62:8848
  profiles:
    active: dev   #环境名

 运行项目测试

ok,日志正常打出

END 

更多问题请留言

猜你喜欢

转载自blog.csdn.net/qq_53679247/article/details/130536482