【一起學源碼-微服務】Netflix Eureka 源碼一:Netflix Eureka 源碼初探,我們爲什麼要讀源碼?...

前言

最近發現 網上好多自己的博客,很多朋友轉載了文章卻不加下 原載地址,本文歡迎轉載一起學習,請在目錄出加上原出處,感謝。轉載來自:博客(一枝花算不算浪漫)

看了前面幾篇文章的小夥伴知道,前幾天在學習設計模式,所以標題也是用的【一起學xxx】,後面不出意外的話 都會使用這個標題了。

公司項目一直用的也是spring cloud,目前自己的水平僅僅也停留在使用階段,所以最近用業餘時間來學習下spring cloud相關組件。

文章打算採用連載的方式,歡迎大家批評指正。

image.png

項目結構

以下所有文章 源碼皆基於spring-cloud Edgware.SR3 版本。對應Netflix eureka 1.7.x版本。

因爲spring-cloud-eureka 底層對netflix eureka進行了封裝,所以這裏我們先看netflix eureka源碼,後續再去讀以下spring-cloud-eureka 對應的東西即可。

目錄如下:

image.png

主要讀取server、client、core等相關代碼
源碼地址: https://github.com/Netflix/eureka
這裏建議fork到自己git倉庫,因爲自己添加的註釋、修改等可以直接提交,方便自己日後閱讀參考。

上帝視角,源碼從何看起

首先我們要找到代碼中的口子,從入口開始讀起會方便的多。
image.png

如上圖所示,這裏 標註的一些地方都可能是一些代碼的入口。
這裏我們先打開web.xml文件,學過j2ee的同學都應該知道,web.xml中會配置工程的servlet、filter、listener、啓動加載級別等信息。

image.png

EurekaBootStrap 配置的是一個listener,它會隨着web應用的啓動而啓動。所以這裏就可以理解爲eureka-server 的入口程序,後續我也會圍繞着此類來學習。

源碼讀取技巧

掐指算算,自己也讀過一些源碼了,那麼源碼該如何讀取才會更好呢?

早些時候 我對於源碼讀起來是很繞的,經常會讀的暈頭轉向,繞在各個方法中 最終不知所云。所以這裏我有兩點建議:

1、抓大放小
2、由粗到細

抓大放小,搞清楚大的流程、架構以及核心的一些實現的機制和細節。不要沉迷於所有的細節。
由粗到細,可以先整體過一遍代碼流程,然後再一點點精度。

點題

到底我們爲什麼讀代碼?

這個優點多了去吧?

1、深入源碼 有助於項目中遇到問題 快速解決
2、方便二次開發,基於自己需求定製化開發
3、裝X

哈哈 最後一個是自己YY的,大家不必在意,好處我就不說了。
下一講開始從eureka-server看起,搞起來搞起來

image.png

申明

本文章首發自本人博客:https://www.cnblogs.com/wang-meng 和公衆號:壹枝花算不算浪漫,如若轉載請標明來源!

感興趣的小夥伴可關注個人公衆號:壹枝花算不算浪漫

22.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章