idea快速搭建spring cloud-注冊中心與注冊


spring cloud快速搭建

  Spring Cloud是一個微服務框架,它基於spring boot, Spring Cloud提供的全套的分布式系統解決方案。 

  首先我們使用gradle來創建:

選擇JDK以及勾選Java,然后下一步

起包名已經項目名,下一步:

選擇我們本地的gradle包,一直下一步,點擊build.gradle並添加我們的依賴:

group 'com.gaofei'
version '1.0-SNAPSHOT'

//gradle使用的插件
apply plugin: 'java'
//gradle使用spring-boot打包更方便
apply plugin: 'spring-boot'


//jdk的版本號
sourceCompatibility = 1.8


//本項目的
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

//由於本次創建gradle未出現src,由以下代碼來解決
task "create-dirs" << {
    sourceSets*.java.srcDirs*.each {
        it.mkdirs()
    }
    sourcScts*.resources.srcDirs*.each{
        it.midirs()
    }
}


//編譯構建時的配置
buildscript {
    ext{
        springBootVersion='1.5.10.RELEASE' //springBootVersion是自己定義的變量 里面寫的是springboot插件的版本
    }
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        jcenter()
        mavenCentral()
        maven{ url "http://repo.spring.io/snapshot" }
        maven{ url "http://repo.spring.io/milestone" }
        maven{ url "http://repo.spring.io/release" }
        maven{ url 'http://repo.spring.io/plugins-snapshot' }
    }
    dependencies{
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")//指的是springboot的一個插件
    }
}



//統一所有項目的配置 就是對所有的模塊進行統一配置 所有以后的模塊都不用再配置
allprojects {

    group 'com.gaofei' //分組
    version '1.0-SNAPSHOT' //版本號

    ext{
        springCloudVersion='Edgware.SR2'
    }
    //所有項目都會引用的阿里雲里的maven
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        jcenter()
        mavenCentral()
        maven{ url "http://repo.spring.io/snapshot" }
        maven{ url "http://repo.spring.io/milestone" }
        maven{ url "http://repo.spring.io/release" }
        maven{ url 'http://repo.spring.io/plugins-snapshot' }
    }
}

//統一所有子項目的配置
subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'spring-boot'

    dependencies {
        compile('org.springframework.boot:spring-boot-starter-web'){
            //使用undertow來代替tomacat
            exclude module:"spring-boot-starter-tomcat"
        }
        //替代tomcat
        compile 'org.springframework.boot:spring-boot-starter-undertow'
        //健康檢查
        compile 'org.springframework.boot:spring-boot-starter-actuator'
        dependencies {
            testCompile group: 'junit', name: 'junit', version: '4.12'
        }
    }
    //版本控制插件
    dependencyManagement{
        imports{
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    }

}

通過注釋可以看到各個代碼塊的作用,這里我們是用阿里雲的倉庫

接下來我們開始建eureka注冊中心,通過new->Module再建gradle項目來創建

在build中添加eureka-server依賴

//表示自己是一個服務器
    compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'

接下來在application.yml中配置

server:
  port: 8000
spring:
  application:
    name: register-center #起個名字
eureka:
  client:
    register-with-eureka: false #啟動時不注冊表明自己是一個注冊中心
    fetch-registry: false

啟動類

@SpringBootApplication
@EnableEurekaServer//表明自己是注冊中心
public class RegisterCenterProvider {
    public static void main(String[] args) {

        SpringApplication.run(RegisterCenterProvider.class,args);
    }
}

啟動:

這就表示注冊中心啟動成功

下面創建服務注冊到服務中心

創建一個gradle module 項目 

在build.gradle中添加thymeleaf組件,eureka客戶端組件的依賴

   //thymeleaf組件
    compile  'org.springframework.boot:spring-boot-starter-thymeleaf'
    //eureka客戶端組件
    compile 'org.springframework.cloud:spring-cloud-starter-eureka'

在application.yml中配置:

server:
  port: 8001 
spring:
  application:
    name: project-shopping-mall #注冊在注冊中心的名字,它會進行鍵值對映射url
  thymeleaf:
    cache: false #關閉緩存
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/ #注冊到注冊中心
  instance:
    prefer-ip-address: true #用兩種方式進行注冊,一種是使用主機名注冊,一種是使用ip地址進行注冊,這里使用ip地址進行注冊

啟動類:

@SpringBootApplication
@EnableDiscoveryClient //表示eureka客戶端
public class ShoppingMallProvider {
    public static void main(String[] args) {
        SpringApplication.run(ShoppingMallProvider.class,args);
    }
}

啟動:

成功!

下幾篇會說一下spring cloud中使用的組件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM