文章推荐
从0到1构建微服务之基础工程创建(一)
从0到1构建微服务之服务注册-nacos(二)
从0到1构建微服务之服务通信-feign(三)
从0到1构建微服务之服务网关-gateway(四)
简介
本文主要介绍配置中心nacos相关的搭建和使用
注:目前所有的代码构建肯定不是最优的,比如版本依赖的版本号抽取管理等等,后续都会一步一步去做。
一、给各服务添加bootstrap.yml配置文件
nacos的相关配置读取是发生在读取application.yml文件之前,若没有相关的配置,则会按照localhost:8848默认配置去连接。所以我们需要创建bootstrap.yml配置文件,将nacos的连接配置放入其中。
配置文件优先级(由高到低):
bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
1、父工程pom添加依赖
springboot并不主动去找bootstrap.yml配置文件,需要引入依赖才能实现
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-context -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
<version>3.1.5</version>
</dependency>
1.1、adminbiz服务配置bootstrap.yml
spring:
application:
name: adminbiz-server
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: share-dev
config: #配置中心的相关配置
server-addr: localhost:8848
file-extension: yaml #与配置中心的扩展项相对应
namespace: share-dev #命名空间id
dataId: adminbiz-server
group: DEFAULT_GROUP
logging:
level:
root: debug
1.2、gateway服务配置bootstrap.yml
spring:
main:
web-application-type: reactive
application:
name: gateway-server
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: share-dev
config: #配置中心的相关配置
server-addr: localhost:8848
file-extension: yaml #与配置中心的扩展项相对应
namespace: share-dev #命名空间id
dataId: gateway-server
group: DEFAULT_GROUP
logging:
level:
root: debug
1.3、user 服务配置bootstrap.yml
spring:
application:
name: user-server
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: share-dev
config: #配置中心的相关配置
server-addr: localhost:8848
file-extension: yaml #与配置中心的扩展项相对应
namespace: share-dev #命名空间id
dataId: user-server
group: DEFAULT_GROUP
logging:
level:
root: debug
二、nacos配置中心相关工作
1、创建配置文件
1.1、adminbiz-server配置
server:
port: 8001
servlet:
context-path: /adminbiz
feign:
client:
config:
default: # default全局的配置
loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
logging:
level:
root: debug
1.2、gateway-server配置
server:
port: 8003
spring:
cloud:
gateway:
enabled: true
routes:
- id: adminbiz-server
uri: lb://adminbiz-server
# uri: http://127.0.0.1:8001
predicates:
- Path=/adminbiz/**
filters:
- AddRequestHeader=Truth, share!
- id: user-server
uri: lb://user-server
# uri: http://127.0.0.1:8002
predicates:
- Path=/user/**
globalcors: # 全局的跨域处理
add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
corsConfigurations:
'[/**]':
allowedOrigins: # 允许哪些网站的跨域请求
- "http://localhost:8090"
allowedMethods: # 允许的跨域ajax的请求方式
- "GET"
- "POST"
- "DELETE"
- "PUT"
- "OPTIONS"
allowedHeaders: "*" # 允许在请求中携带的头信息
allowCredentials: true # 是否允许携带cookie
maxAge: 360000 # 这次跨域检测的有效期
default-filters: # 默认过滤项
- AddRequestHeader=Truth, share!
logging:
level:
root: trace
1.3、user-server配置
server:
port: 8002
servlet:
context-path: /user
logging:
level:
root: debug
2、pom文件引入依赖
2.1、adminbiz服务pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.0.4.0</version>
</dependency>
2.2、gateway服务pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.0.4.0</version>
</dependency>
2.3、user服务pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.0.4.0</version>
</dependency>
3、bootstrap.yml添加连接配置
上面引入bootstrap文件读取功能时,已同时将相关的连接写入,大家往上翻翻即可
4、父工程pom文件引入依赖
经过查阅官方资料,确认从2021.0.4版本起,Spring Cloud将不再默认启用bootstrap 包,如若不加则会抛异常
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.5</version>
</dependency>