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 源碼下載:
下載完源碼之后,需要更改一下幾個地方:
build.gradle
增加阿里云鏡像倉庫,將如下插件版本改一下,否則導(dǎo)入idea會報錯:
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中的版本進行啟動,所以必須修改版本,改成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,等待幾分鐘,然后編譯完成。可能需要手動設(shè)置一下各個模塊的jdk,大家隨便搞一個JDK8就可以。
2. 工程結(jié)構(gòu)速覽
我們此次分析源碼,從Spring cloud Netflix eureka
開始的。
Spring cloud eureka server和client
是對Netflix的eureka的封裝,加了一些注解,對spring boot進行支持。所以如果上來就看eureka的源碼,先從Netflix eureka開始看起,結(jié)束后再把spring cloud Netflix eureka server和client這兩個項目看一下就可以了。
github.com/Netflix/eur…以上是兩個項目的地址,實際上,spring cloud Netflix這個項目就是對Netflix的幾個組件進行了一層很薄的封裝。
spring cloud 2020.0.2對應(yīng)的是Netflix eureka的1.10.11版本
eureka-client
:這個就是指eureka的客戶端,注冊到eureka上面去的一個服務(wù),就是一個eureka client。無論你要注冊,還是要發(fā)現(xiàn)別的服務(wù),無論你是服務(wù)提供者還是服務(wù)消費者,都是一個eureka 客戶端
eureka-core
:這個就是指的eureka的服務(wù)端,其實就是eureka的注冊中心
eureka-resources
:這個是基于jsp開發(fā)的eureka控制臺,web頁面,上面你可以看到各種注冊的服務(wù)實例等信息
eureka-server
:這是把eureka-client、eureka-core、eureka-resources打包成一個war包,也就是說eureka-server自己本身也是一個eureka client,同時也是注冊中心,同時也提供eureka控制臺。這個是我們真正使用的注冊中心
eureka-example
:eureka提供的使用示例
eureka-test-utils
:eureka的單元測試工具
我們逐一閱讀,首先先剖析eureka-server,因為就是用eureka-server先啟動注冊中心的,然后客戶端才能來注冊服務(wù)和發(fā)現(xiàn)服務(wù)。
3. 調(diào)試須知
eureka-server
工程的單元測試依賴war包
,需要先把eureka server
的gradle的war指令
執(zhí)行以下,得到一個war包,就可以調(diào)試了eureka-example
工程提供了很多實例,如果想調(diào)試eureka 客戶端的邏輯可在此處找
參考文章
springcloud-source-study學(xué)習(xí)github地址
以上就是Eureka源碼閱讀之環(huán)境搭建及工程結(jié)構(gòu)的詳細內(nèi)容,更多關(guān)于Eureka源碼環(huán)境搭建工程結(jié)構(gòu)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot?MP簡單的分頁查詢測試實現(xiàn)步驟分解
好久沒水后端的東西了,最近在做vue項目寫前端的代碼,所以cloud也停進度了,吃完飯突然記得我沒有在博客里寫分頁的東西,雖然項目中用到了,但是沒有拎出來,這里就拎出來看看2023-04-04Java實現(xiàn)發(fā)送短信驗證碼+redis限制發(fā)送的次數(shù)功能
這篇文章主要介紹了Java實現(xiàn)發(fā)送短信驗證碼+redis限制發(fā)送的次數(shù),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04Spring Cloud Config 使用本地配置文件方式
這篇文章主要介紹了Spring Cloud Config 使用本地配置文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Java多線程中不同條件下編寫生產(chǎn)消費者模型方法介紹
這篇文章主要介紹了Java多線程中不同條件下編寫生產(chǎn)消費者模型方法介紹,介紹了生產(chǎn)消費者模型,然后分享了相關(guān)代碼示例,具有一定參考價值,需要的朋友可以了解下。2017-11-11springboot構(gòu)建docker鏡像并推送到阿里云
本文主要介紹了springboot構(gòu)建docker鏡像并推送到阿里云,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Mybatis之動態(tài)SQL使用小結(jié)(全網(wǎng)最新)
MyBatis令人喜歡的一大特性就是動態(tài)SQL,?在使用JDBC的過程中,?根據(jù)條件進行SQL的拼接是很麻煩且很容易出錯的,MyBatis通過OGNL來進行動態(tài)SQL的使用解決了這個麻煩,對Mybatis動態(tài)SQL相關(guān)知識感興趣的朋友跟隨小編一起看看吧2024-05-05