溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring cloud eureka注冊中心的示例分析

發(fā)布時間:2021-08-26 13:14:31 來源:億速云 閱讀:122 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)spring cloud eureka注冊中心的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

注冊中心呢 就是springcloud的一個核心組件 所有微服務(wù)的基石 微服務(wù)的核心思想就是分布式 所有的服務(wù)分開管理 但這些服務(wù)分開后該如何協(xié)同呢 就需要注冊中心的介入

怎么使用注冊中心

首先在gradle引入它的依賴

compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'

這里再講一下 springcloud會分布很多模塊 很難管理 所以在整個項(xiàng)目的build.gradle中可以對所有模塊的build.gradle進(jìn)行管理

//插件
apply plugin: 'java' 
apply plugin: 'spring-boot'

//jdk版本
sourceCompatibility = 1.8

dependencies {
  testCompile group: 'junit', name: 'junit', version: '4.12' //項(xiàng)目版本
}
//在編譯構(gòu)建時的配置 自動維護(hù)版本號
buildscript {
  ext{
    springBootVersion='1.5.10.RELEASE' //ext中可以定義變量 里面寫的是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}")
  }
}
//統(tǒng)一所有項(xiàng)目的配置 就是對所有的模塊進(jìn)行統(tǒng)一配置 所有以后的模塊都不用再配置
allprojects {

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

  ext{
    springCloudVersion='Edgware.SR2'
  }
  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' }
  }
}

//統(tǒng)一所有子項(xiàng)目的配置
subprojects {
  apply plugin: 'java'
  apply plugin: 'idea'
  apply plugin: 'spring-boot'

  dependencies {
    compile('org.springframework.boot:spring-boot-starter-web'){
      //移除tomcat 因?yàn)閟pringboot嫌tomcat運(yùn)行慢 就使用undertow來代替
      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}"
    }
  }
}

看下配置文件

server:
 port: 8888 #端口號
spring:
 application:
  name: register-center #項(xiàng)目名
eureka:
 client:
  register-with-eureka: false #啟動時不向注冊中心注冊自己 意思也就是證明自己是一個注冊中心
  fetch-registry: false #啟動時是否檢索服務(wù) 不檢索 含義同上

還有一個

eureka.server.enable-self-preservation:

是否開啟自我保護(hù)模式,默認(rèn)為true 會在下一篇博客詳細(xì)說明[/code]

需要在啟動類上加上兩個注解

@SpringBootApplication //啟動項(xiàng)目
@EnableEurekaServer // 定義自己是一個注冊中心
public class RegisterCenterProvider {
  public static void main(String[] args) {
    SpringApplication.run(RegisterCenterProvider.class,args);
  }
}

這時候就可以嘗試將一個服務(wù)加入注冊中心

先建一個新模塊

一、加入依賴

compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'

二、配置文件 幾乎一樣 唯一不同是加入如下兩點(diǎn)

eureka:
 client:
  service-url:
   defaultZone: http://localhost:8888/eureka/ #注冊進(jìn)那個注冊中心 注冊中心的地址
 instance:
  prefer-ip-address: true #是否用ip地址注冊進(jìn)注冊中心

三、在啟動類上加入注解

@EnableDiscoveryClient

之后啟動注冊中心的啟動類 再啟動服務(wù)端的啟動類 看看什么效果

一定要先啟動注冊中心 再啟動服務(wù)端 否則服務(wù)端找不到可以注冊的注冊中心就會報(bào)錯

spring cloud eureka注冊中心的示例分析

這樣就是已經(jīng)注冊成功

關(guān)于“spring cloud eureka注冊中心的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI