目录
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: 2872392768@qq.com
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: 2872392768@qq.com
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
更多问题请留言