Spring Cloud:Eureka服務註冊

第一次寫關於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 &

運行
EurekaServer啓動

Eureka界面(http://127.0.0.1:8761,也能夠輸入本機主機名或者IP後加端口8761。8761是Eureka默認端口,能夠經過配置文件修改):
EurekaServer界面

相關文章
相關標籤/搜索