第一次寫關於spring cloud相關的技術類文章,但願你們多多支持。java
首先咱們建立一個Gradle項目,引入java和spring-boot框架。git
依賴:
1: spring-cloud-starter-eureka-server用於Eureka的服務註冊。
2: spring-cloud-starter-config用於配置管理(好比對bootstrap.yml和application.yml等統一管理)。
3: spring-boot-actuator是spring boot提供的對應用系統的自省和監控的集成功能,能夠對應用系統進行配置查看、相關功能統計等。spring
//build.gradle 爲了學習能夠僅添加spring-cloud-starter-eureka-server依賴 group 'org.sauceggplant' version '0.0.1-SNAPSHOT' apply plugin: 'java' apply plugin: 'spring-boot' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { //maven 倉庫能夠本身搭建nexus服務器用做maven倉庫,也能夠使用mavenCentral()中央倉庫 maven{url 'http://192.168.56.103:8081/repository/zhaozx/'} } dependencies { compile 'org.springframework.cloud:spring-cloud-starter-config:1.3.1.RELEASE' compile 'org.springframework.cloud:spring-cloud-starter-eureka-server:1.3.1.RELEASE' compile 'org.springframework.boot:spring-boot-actuator:1.5.3.RELEASE' //spring-boot-starter-test是spring-boot用於測試的,能夠去掉 testCompile 'org.springframework.boot:spring-boot-starter-test:1.5.3.RELEASE' } buildscript { repositories { maven{url 'http://192.168.56.103:8081/repository/zhaozx/'} } dependencies { //spring-boot的gradle插件,若是是maven構建的,能夠使用maven插件 classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE' } } jar { //用於打包jar文件的名稱和版本 baseName = 'EurekaServer' version = '0.0.1-SNAPSHOT' }
Eureka服務註冊只須要一個java類,spring-boot的啓動類docker
//EurekaServerApplication.java package org.sauceggplant.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
@SpringBootApplication註解用於聲明這是一個Spring Boot項目。
@EnableEurekaServer註解用於聲明啓用Eureka服務註冊,其餘項目的服務能夠註冊到本應用服務器上。bootstrap
resource中能夠配置bootstrap.yml和application.yml。如習慣配置bootstrap.properties和application.properties也可,區別在於yml能夠支持docker運行。服務器
bootstrap多用於全局配置,application多用於應用自己的配置。項目配置特別多能夠採用 spring.application.profiles.active對配置分開管理。內部原理與傳統的spring的xml配置區別不大。app
格式上:框架
#***.properties server.port=8761 server.host=127.0.0.1 #***.yml server: port: 8761 host: 127.0.0.1
筆者以爲採用yml縮進更簡潔,注意對齊和":"後邊的空格.maven
#application.yml server: port: 8761 //服務端口 spring: application: name: EurekaServer //服務名稱 # cloud: # config: # server: # git: # url: http://192.168.56.101/zhaozx/config-repo/eureka-server #yml或者properties配置在git資源庫中統一配置管理 # profiles: # active: dev #至關於引入了application-dev.yml的內容,用於多個配置文件切換,好比開發模式有一套本身的配置。 eureka: client: registerWithEureka: false #聲明不在Eureka服務註冊本身 fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #${}方式爲引用變量,這裏指代Eureka服務註冊地址 instance: hostname: 127.0.0.1
對於bootstrap.ymlspring-boot
#bootstrap.yml eureka: server: enable-self-preservation: false # 關閉自我保護模式(缺省爲打開) eviction-interval-timer-in-ms: 10000 # 續期時間,即掃描失效服務的間隔時間(缺省爲60*1000ms)
項目啓動(直接運行EurekaServerApplication類,或者打包後經過):
java -jar EurekaServer-0.0.1-SNAPSHOT.jar &
運行
Eureka界面(http://127.0.0.1:8761,也能夠輸入本機主機名或者IP後加端口8761。8761是Eureka默認端口,能夠經過配置文件修改):