Eureka源碼閱讀之環(huán)境搭建及工程結(jié)構(gòu)
1. 源碼閱讀環(huán)境搭建
- ide:IntelliJ IDEA 2020.1
- 包管理:gradle
- eureka版本:1.10.11
- Spring Cloud : 2020.0.2
- Spring Boot :2.4.4
1.1 源碼下載:

下載完源碼之后,需要更改一下幾個(gè)地方:
build.gradle增加阿里云鏡像倉(cāng)庫(kù),將如下插件版本改一下,否則導(dǎo)入idea會(huì)報(bào)錯(cuò):
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
plugins {
id 'nebula.netflixoss' version '5.1.0'
}

需要更改gradle的版本,在gradle/gradle-wrapper.properties文件中,由于我使用gradle-wrapper中的版本進(jìn)行啟動(dòng),所以必須修改版本,改成3.5.1版本:

distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https://services.gradle.org/distributions/gradle-3.5.1-bin.zip
導(dǎo)入IDEA,等待幾分鐘,然后編譯完成??赡苄枰謩?dòng)設(shè)置一下各個(gè)模塊的jdk,大家隨便搞一個(gè)JDK8就可以。
2. 工程結(jié)構(gòu)速覽
我們此次分析源碼,從Spring cloud Netflix eureka開始的。
Spring cloud eureka server和client是對(duì)Netflix的eureka的封裝,加了一些注解,對(duì)spring boot進(jìn)行支持。所以如果上來(lái)就看eureka的源碼,先從Netflix eureka開始看起,結(jié)束后再把spring cloud Netflix eureka server和client這兩個(gè)項(xiàng)目看一下就可以了。
github.com/Netflix/eur…以上是兩個(gè)項(xiàng)目的地址,實(shí)際上,spring cloud Netflix這個(gè)項(xiàng)目就是對(duì)Netflix的幾個(gè)組件進(jìn)行了一層很薄的封裝。
spring cloud 2020.0.2對(duì)應(yīng)的是Netflix eureka的1.10.11版本
eureka-client:這個(gè)就是指eureka的客戶端,注冊(cè)到eureka上面去的一個(gè)服務(wù),就是一個(gè)eureka client。無(wú)論你要注冊(cè),還是要發(fā)現(xiàn)別的服務(wù),無(wú)論你是服務(wù)提供者還是服務(wù)消費(fèi)者,都是一個(gè)eureka 客戶端
eureka-core:這個(gè)就是指的eureka的服務(wù)端,其實(shí)就是eureka的注冊(cè)中心
eureka-resources:這個(gè)是基于jsp開發(fā)的eureka控制臺(tái),web頁(yè)面,上面你可以看到各種注冊(cè)的服務(wù)實(shí)例等信息
eureka-server:這是把eureka-client、eureka-core、eureka-resources打包成一個(gè)war包,也就是說(shuō)eureka-server自己本身也是一個(gè)eureka client,同時(shí)也是注冊(cè)中心,同時(shí)也提供eureka控制臺(tái)。這個(gè)是我們真正使用的注冊(cè)中心
eureka-example:eureka提供的使用示例
eureka-test-utils:eureka的單元測(cè)試工具
我們逐一閱讀,首先先剖析eureka-server,因?yàn)榫褪怯胑ureka-server先啟動(dòng)注冊(cè)中心的,然后客戶端才能來(lái)注冊(cè)服務(wù)和發(fā)現(xiàn)服務(wù)。
3. 調(diào)試須知
eureka-server工程的單元測(cè)試依賴war包,需要先把eureka server的gradle的war指令執(zhí)行以下,得到一個(gè)war包,就可以調(diào)試了eureka-example 工程提供了很多實(shí)例,如果想調(diào)試eureka 客戶端的邏輯可在此處找
參考文章
springcloud-source-study學(xué)習(xí)github地址
以上就是Eureka源碼閱讀之環(huán)境搭建及工程結(jié)構(gòu)的詳細(xì)內(nèi)容,更多關(guān)于Eureka源碼環(huán)境搭建工程結(jié)構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Eureka源碼解析服務(wù)離線狀態(tài)變更
- Eureka源碼閱讀Client啟動(dòng)入口注冊(cè)續(xù)約及定時(shí)任務(wù)
- Eureka源碼核心類預(yù)備知識(shí)
- SpringCloud?eureka(server)微服務(wù)集群搭建過(guò)程
- spring cloud-給Eureka Server加上安全的用戶認(rèn)證詳解
- spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn))
- spring cloud將spring boot服務(wù)注冊(cè)到Eureka Server上的方法
- Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例
相關(guān)文章
Java ThreadLocal類應(yīng)用實(shí)戰(zhàn)案例分析
這篇文章主要介紹了Java ThreadLocal類應(yīng)用,結(jié)合具體案例形式分析了java ThreadLocal類的功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
spring MVC cors跨域?qū)崿F(xiàn)源碼解析
本文主要介紹了spring MVC cors跨域?qū)崿F(xiàn)源碼解析。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
idea開啟mybatis控制臺(tái)SQL日志打印的代碼示例
本文主要介紹了idea開啟mybatis控制臺(tái)SQL日志打印的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
使用c3p0連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查
這篇文章主要為大家詳細(xì)介紹了使用c3p0連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
idea 多模塊項(xiàng)目依賴父工程class找不到問題的方法
這篇文章主要介紹了idea 多模塊項(xiàng)目依賴父工程class找不到問題的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
SpringBoot讀取Resource目錄下文件的四種方式總結(jié)
在Spring?Boot項(xiàng)目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,本文將介紹四種常用的方法來(lái)獲取resources目錄下的文件,需要的朋友可以參考下2023-08-08

