springcloud首个项目遇到的坑

项目用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版本

引入以下包

Finchley.SR2
0.9.0.RELEASE

    org.springframework.cloud
    spring-cloud-dependencies
    ${spring-cloud.version}
    pom
    import



    org.springframework.cloud
    spring-cloud-alibaba-dependencies
    ${spring-cloud-alibaba.version}
    pom
    import

//子包里继承

    org.springframework.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 
 
     org.springframework.cloud
     spring-cloud-starter-alibaba-nacos-config
 

最好引用spring-cloud-alibaba,0.9.0最新版,如果是低版本(网上有很多0.2.1-RELEASE版),需要引入,否则你会陷入无法注册服务的痛苦中。。


    com.alibaba.nacos
    nacos-client
    1.0.0


多环境配置

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 &

你可能感兴趣的:(springcloud)