二、 服務的注冊與發(fā)現(xiàn)(Eureka)

1. 創(chuàng)建一個Eureka-server服務,用于注冊服務


選取需要的依賴,注意選擇spring boot為1.5.XX的,2.0還不穩(wěn)定,估計玩的轉的人不多:

2.?修改配置文件application.yml或者application.yaml

? 至于為什么使用application.yaml或appliation.yml而不是用application.properties呢,主要有連個原因:一是application.properties的后綴名太長了,不方便記憶;二是application.properties配置中文值的時候,讀取出來的屬性值會出現(xiàn)亂碼問題。但是 application.yml 不會出現(xiàn)亂碼問題。原因是,Spring Boot 是以 iso-8859 的編碼方式讀取 application.properties 配置文件。

注意這里還有個坑:

如果定義一個鍵值對 user.name=xxx ,這里會讀取不到對應寫的屬性值。為什么呢?SpringBoot 的默認 StandardEnvironment 首先將會加載 “systemEnvironment" 作為首個PropertySource.而 source 即為System.getProperties().當 getProperty時,按照讀取順序,返回 “systemEnvironment" 的值,也就是你電腦的名字,在這兒:

另外說一句,idea自帶的yaml插件未必有效,如果無效,請自己下載并導入到idea,圖中第二個就是我自己安裝的:

切回正題,因為是微服務開發(fā),并且都在同一臺主機上,所以我們一開始就要做好端口規(guī)劃。這里我使用8700-8710 作為注冊服務中心。

修改配置文件為:

為什么明明時服務器,卻要配置個client呢?

因為eureka是一個高可用的組件,它沒有后端緩存,每一個實例注冊之后需要向注冊中心發(fā)送心跳(因此可以在內存中完成),在默認情況下erureka server也是一個eureka client ,必須要指定一個server

3.在啟動類上添加注解

Spring團隊對erueka做了很多內置的配置和優(yōu)化,使我們很方便的使用一個注解就可以實現(xiàn)服務端注冊。

4.運行服務

Eureka是有圖形界面的,我們打開瀏覽器,訪問http://localhost:8700/,如圖則代表成功:

5.?創(chuàng)建一個服務的提供商,將其注冊在eureka服務上:

注意選右邊一個:

6.更改配置文件application.yml

注意:服務提供商端口我們暫定為從8080端口開始

7. 添加注解

8.運行工程,刷新eureka的主頁,可以看見服務已經注冊上去了


關于紅字部分,我也不太懂,屬于正常情況,產生原因我在網上復制了一段:

Eureka Server在運行期間,會統(tǒng)計心跳失敗的比例在15分鐘之內是否低于85%,如果出現(xiàn)低于的情況(在單機調試的時候很容易滿足,實際在生產環(huán)境上通常是由于網絡不穩(wěn)定導致),Eureka Server會將當前的實例注冊信息保護起來,同時提示這個警告。保護模式主要用于一組客戶端和Eureka Server之間存在網絡分區(qū)場景下的保護。一旦進入保護模式,Eureka Server將會嘗試保護其服務注冊表中的信息,不再刪除服務注冊表中的數(shù)據(jù)(也就是不會注銷任何微服務)。

如果你覺得主機名注冊太難看,可以用IP地址注冊的話,在application.yaml文件中添加配置:

9.添加測試代碼,方便起見,直接寫在啟動類上了,注意添加restful注解:

10. 重啟user-server,刷新eureka注冊頁面,點擊注冊上的服務,可以看到:

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容