文章目录
一、SpringCloud脚手架
选择的是github中的高star项目,github项目链接
二、环境安装
1.Nacos安装
从官网直接下载安装Nacos官网
startup.cmd -m standalone 单机模式运行(非集群)
可能出现的问题:将startup.cmd中的set MODE="cluster"更改为set MODE=“standalone”
默认账号密码:nacos
2.rabbitmq安装
安装时需要同时安装erlang和rabbitmq
参考文章:https://blog.csdn.net/zxl646801924/article/details/80435231
运行rabbitmq service -start
默认账号密码:guest
3.zipkin+Elasticsearch安装
参考文章:https://blog.csdn.net/qq_38423256/article/details/116788990
zipkin通过java -jar运行
Elasticsearch运行bin\elasticsearch.bat
4.kibana安装
下载安装直接运行bin\kibana.bat
5.grafana安装
账号密码:admin 123456
6.sentinel安装
账号密码:sentinel sentinel
运行java -jar sentinel-dashboard-1.8.3.jar --server.port=8858
三、框架修改时部分问题汇总
1.多模块下Feign的使用@Autowired注入问题
在消费端的启动器增加@EnableFeignClients(“org.springblade.auth.feign”)注解。否则会在注入时标红报错
2.循环依赖
springboot2.6+版本之后,需要在配置文件中加入
spring. main.allow-circular-references = true
否则的话即使使用了@Autowired,编译时依旧会提醒你循环依赖
或者可以再加上@lazy注解
3.引入zipkin之后报错
Spring Cloud 将http://localhost:9411/ ,识别成了一个服务名。
解决方案:
spring:
zipkin:
discoveryClientEnabled: false
博客:引入zipkin后报错
4.在一个公共包中引入了mongodb的依赖,导致每个依赖该包的服务启动时都会去连接mongodb数据库
在启动时加上注解,强制不连接
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
5.配置文件问题
springblade在BladeApplication项目启动器里使用 StandardEnvironment.getActiveProfiles 读取了applcation.properties 的内容,与"dev、prod、test"的list取交集,取不到就用dev,取到一个的话,使用取到的环境,取到多个报错
6.关于nacos的配置管理文件
(1)引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
(2)spring cloud对应配置
在 Nacos Spring Cloud 中,dataId 默认为 spring.application.name 加上 properties 文件后缀
这里使用 bootstrap.properties 作为配置 Nacos 地方,是因为 Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml ,在 application 层级上配置 Nacos 时无法生效。
通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新
(3)多数据源(仅针对springCloud)
Nacos Config 主要通过 dataId 和 group 来唯一确定一条配置
dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profile.active 即为当前环境对应的 profile
当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {prefix}.{file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型
group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 自定义指定名称