SpringCloud組件:Eureka服務注冊是采用主機名還是IP地址球榆?

我們一直在使用Eureka進行注冊服務充易,然而你有可能很少關心服務在注冊到Eureka Server時是采用的主機名的方式随抠?還是IP地址的方式距辆?

構建項目

我們把之前章節(jié)SpringCloud組件:將微服務提供者注冊到Eureka服務中心的源碼復制一份修改項目名稱為hengboy-spring-cloud-eureka-register-away余佃,并簡單的對application.yml配置文件進行修改,如下所示:

# 服務名稱
spring:
  application:
    name: hengboy-spring-cloud-eureka-register-away

# 服務提供者端口號
server:
  port: 20001

# 配置Eureka Server 信息
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10000/eureka/
  # 自定義實例編號
  instance:
    instance-id: ${spring.application.name}:${server.port}:@project.version@

在上面配置中,并沒有對注冊方式進行任何修改跨算,如果現在啟動當然就是采用的默認方式進行注冊爆土,接下來我們來看看默認的方式是采用的哪種?

查看默認方式

我們仍然使用SpringCloud組件:搭建Eureka服務注冊中心源碼作為服務注冊中心(Eureka Server)來完成本章的測試工作诸蚕。

測試步驟:
  1. 啟動服務注冊中心
  2. 啟動本章項目
  3. 訪問http://localhost:10000打開服務注冊中心管理界面
  4. 點擊服務列表服務步势,查看地址欄地址

當我們點擊hengboy-spring-cloud-eureka-register-away:20001:v1.0服務名稱后會跳轉到服務的監(jiān)控信息界面,不過我們并沒有添加監(jiān)控相關的依賴或者配置背犯,所以這里跳轉后是404訪問不到頁面坏瘩,即使是這樣我們還是可以看到跳轉的網址是http://192.168.1.75:20001/actuator/info,這也證實了一點Eureka ClientEureka Server進行注冊的時候默認采用的是IP Address方式漠魏。

那么如果你想采用主機名的方式進行注冊服務倔矾,該怎么配置呢?請繼續(xù)閱讀柱锹。

配置使用主機名

我們如果采用主機名的方式進行注冊服務哪自,只需要修改application.yml配置文件內的eureka.instance.hostname配置信息即可,如下所示:

# 配置Eureka Server 信息
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10000/eureka/
  # 自定義實例編號
  instance:
    instance-id: ${spring.application.name}:${server.port}:@project.version@
    # 配置使用主機名注冊服務
    hostname: node1

node1是我本機配置的其中一個主機名

  • OS X/Linux系統(tǒng)下修改主機名

我是采用的MAC OS X系統(tǒng)作為運行環(huán)境禁熏,所以修改/etc/hosts文件對應的添加主機名壤巷、IP地址的映射即可,如下所示:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1       node1
127.0.0.1       node2
  • Windows系統(tǒng)下修改主機名

如果你是采用的Windows系統(tǒng)作為運行環(huán)境瞧毙,你可以修改C:\Windows\System32\drivers\etc\hosts文件內容并添加映射關系胧华。

修改完成主機名后,一定不要忘記是需要讓主機名生效的宙彪,修改完成后最有效的辦法是重啟你的計算機可以生效主機名矩动。

接下來我們需要按照下面的步驟進行測試主機名方式注冊是否已經生效?
  1. 重啟本章項目
  2. 刷新Eureka Server管理平臺界面
  3. 點擊服務名稱查看跳轉地址

我們可以發(fā)現跳轉的路徑由原本默認的http://192.168.1.75:20001/actuator/info方式修改成了http://node1:20001/actuator/info释漆,可以看到已經是使用了主機名的方式進行的注冊服務1弧!灵汪!

配置優(yōu)先使用IP

如果你在部署的時候某種原因導致的無法使用主機名方式進行部署,當然你可以選擇不配置eureka.instance.hostname參數柑潦,如果你配置后仍然想使用IP Address方式進行服務注冊享言,這時我們可以通過eureka.instance.prefer-ip-address參數來進行設置,如果該參數設置為true渗鬼,則優(yōu)先使用IP Address進行服務注冊览露。
配置如下所示:

# 配置Eureka Server 信息
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10000/eureka/
  # 自定義實例編號
  instance:
    instance-id: ${spring.application.name}:${server.port}:@project.version@
    # 配置使用主機名注冊服務
    hostname: node1
    # 優(yōu)先使用IP地址方式進行注冊服務
    prefer-ip-address: true
具體的測試過程與上述配置使用主機名一致,可以進行嘗試運行測試譬胎。

既然我們可以優(yōu)先使用IP進行注冊服務差牛,我們想根據指定的IP地址進行注冊該怎么配置呢命锄?

配置使用指定IP

配置使用指定IP也比較簡單,我們可以進行設置eureka.instance.ip-address參數的值來進行修改注冊的IP 地址偏化。
我們基于上面步驟的配置文件進行修改內容如下所示:

# 配置Eureka Server 信息
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10000/eureka/
  # 自定義實例編號
  instance:
    instance-id: ${spring.application.name}:${server.port}:@project.version@
    # 配置使用主機名注冊服務
    hostname: node1
    # 優(yōu)先使用IP地址方式進行注冊服務
    prefer-ip-address: true
    # 配置使用指定IP
    ip-address: 127.0.0.1

配置文件修改完成后脐恩,進行如下步驟進行測試是否失效:

  1. 重啟本章項目
  2. 刷新Eureka Server管理平臺界面
  3. 點擊服務名稱,查看跳轉地址信息

我們發(fā)現跳轉地址欄的地址已經使用了我們配置的ip-address參數侦讨,地址為:http://127.0.0.1:20001/actuator/info驶冒。

注意:如果配置ip-address參數后并沒有開啟prefer-ip-address: true,那么仍然使用主機名或者默認的注冊方式韵卤。

總結

我們通過幾種不同的服務注冊方式來全面講解了Eureka Client在注冊到服務注冊中心時使用的主機信息骗污,這幾種注冊方式也是存在一定的優(yōu)先級順序的,這一知識點我們在下一章結合Eureka源碼進行分別全面剖析這幾種注冊方式以及優(yōu)先級順序沈条。

源碼位置

本章源碼已經上傳到恒宇少年的碼云,請結合源碼進行學習,感謝閱讀罢荡。

作者個人 博客
使用開源框架 ApiBoot 助你成為Api接口服務架構師

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市季稳,隨后出現的幾起案子擅这,更是在濱河造成了極大的恐慌,老刑警劉巖景鼠,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仲翎,死亡現場離奇詭異,居然都是意外死亡铛漓,警方通過查閱死者的電腦和手機溯香,發(fā)現死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浓恶,“玉大人玫坛,你說我怎么就攤上這事“” “怎么了湿镀?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伐憾。 經常有香客問我勉痴,道長,這世上最難降的妖魔是什么树肃? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任蒸矛,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘雏掠。我一直安慰自己斩祭,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布乡话。 她就那樣靜靜地躺著摧玫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚊伞。 梳的紋絲不亂的頭發(fā)上席赂,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音时迫,去河邊找鬼颅停。 笑死,一個胖子當著我的面吹牛掠拳,可吹牛的內容都是我干的癞揉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼溺欧,長吁一口氣:“原來是場噩夢啊……” “哼喊熟!你這毒婦竟也來了?” 一聲冷哼從身側響起姐刁,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤芥牌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后聂使,有當地人在樹林里發(fā)現了一具尸體壁拉,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年柏靶,在試婚紗的時候發(fā)現自己被綠了弃理。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡屎蜓,死狀恐怖痘昌,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情炬转,我是刑警寧澤辆苔,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站扼劈,受9級特大地震影響驻啤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜测僵,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一街佑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捍靠,春花似錦沐旨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至良风,卻和暖如春谊迄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烟央。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工统诺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疑俭。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓粮呢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钞艇。 傳聞我的和親對象是個殘疾皇子啄寡,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容