项目用springcloud + springboot +nacos
用到nacos的服务注册中心和配置中心
首先是版本问题:
springcloud&springboot版本
官方版本关系
总结个大版本图
Release Train | Boot Version |
---|---|
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
我的项目一开始用springboot1.5.10-RELEASE,经过各种尝试,服务无法注册,配置无法加载。
痛定思痛,将项目升级到2.0.7-RELEASE
,cloud版本选择Finchley.SR2
,这才读取配置成功。
nacos版本
引入以下包
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
<spring-cloud-alibaba.version>0.9.0.RELEASE</spring-cloud-alibaba.version>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring cloud alibaba-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
//子包里继承
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
最好引用spring-cloud-alibaba,0.9.0最新版,如果是低版本(网上有很多0.2.1-RELEASE版),需要引入,否则你会陷入无法注册服务的痛苦中。。
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.0.0</version>
</dependency>
多环境配置
nacos支持多环境配置,但springcloud对这块支持的不是太好,我的做法的是将配置文件都写入nacos配置,bootstrap.yml只写环境配置:
server:
port: 8085
spring:
application:
name: demo-service
profiles:
active: @spring.profiles.active@
---
spring:
profiles: local
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
namespace: 31a601a0-84d9-411f-8df0-8e1afd0f4277
---
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: demo-reg:8848
file-extension: yml
namespace: bc94b90f-5524-43ea-ba0a-e8a1135a5a30
---
spring:
profiles: test
cloud:
nacos:
config:
server-addr: demo-reg:8848
file-extension: yml
namespace: dcfb4da5-4b07-49a9-bfdd-5e60537148c5
pom中定义spring.profiles.active
,打包即可
启动方式如:
nohup java -jar demo-service.jar --spring.profiles.active=dev >demo.log 2>&1 &