「 從0到1學習微服務SpringCloud 」02 Eureka服務註冊與發現

系列文章(更新ing):

「 從0到1學習微服務SpringCloud 」01 一起來學呀!

Spring Cloud Eureka

  • 基於Netflix Eureka做了二次封裝(Spring Cloud Eureka並不是從零開始做出來的,而是對Netflix Eureka做了二次封裝)

  • 兩個組件組成

  • Eureka Server:Eureka服務器,註冊中心

  • Eureka Client:Eureka客戶端,各個微服務作爲客戶端,向Eureka服務器進行註冊

Eureka Server的使用

1.使用IDE快速新建Eureka Server項目

2.啓動類加上@EnableEurekaServer註解,說明自己是Eureka服務器

3.Eureka配置

server:
  port: 8761
eureka:
  client:
    #表示是否將自己註冊到Eureka Server, 默認爲true
    #由於當前應用就是Eureka Server, 因此設爲 false
    register-with-eureka: false
    #表示是否從Eureka Server獲取註冊信息,默認爲true。
    #如果這是一個單點的 Eureka Server,不需要同步其他節點的數據,可以設爲false。
    fetch-registry: false
    #註冊中心地址
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    #服務名稱
    name: eureka-server

注意:
這兩個配置需要設置爲false,否則會報一下錯誤

register-with-eureka: falsefetch-registry: false

如下圖:

4.打開圖形界面,http://localhost:8761/ Eureka服務器啓動完畢

Eureka Client的使用

Eureka註冊中心啓動完了,這時就需要將服務註冊到上面了
1.使用IDE快速新建Eureka Client項目

2.啓動類加上@EnableEurekaClient註解,說明自己是Eureka客戶端

3.Eureka配置

server:
  port: 8861
eureka:
    client:
        #註冊中心地址
        service-url:
            defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
spring:
    application:
        name: eureka-client

4.啓動該程序,同時啓動上面的Eureka Server程序
在Eureka註冊中心上,可以看到,eureka-client已經被註冊上去了

Eureka高可用

現在Eureka是個單點的,但是服務器可能會掛掉,這是很危險的,所以需要實現Eureka高可用,新增Eureka Server,現在就來新增一個Eureka Server
1.配置中fetch-registry: false的配置去掉或註釋掉
因爲現在不是單節點了,是多節點,需要同步其他節點的數據

去掉或註釋掉#fetch-registry: false

2.idea中複製應用

並分別設置分別設置應用名EurekaServerApplication1,默認端口8761

-Dserver.port=8761

另一個應用名EurekaServerApplication2,默認端口8762

-Dserver.port=8762

3.配置server1,並啓動程序EurekaServerApplication1

#啓動端口可註釋掉,VM參數中已配置
#server:
#  port: 8761
eureka:
  client:
    #表示是否將自己註冊到Eureka Server, 默認爲true
    #由於當前應用就是Eureka Server, 因此設爲 false
    register-with-eureka: false
    #註冊中心地址
    service-url:
      #設置成server2的端口號,相互註冊
      defaultZone: http://localhost:8762/eureka/
spring:
  application:
    #服務名稱
    name: eureka-server1

4.配置server2,並啓動程序EurekaServerApplication2

#啓動端口可註釋掉,VM參數中已配置
#server:
#  port: 8761
eureka:
  client:
    #表示是否將自己註冊到Eureka Server, 默認爲true
    #由於當前應用就是Eureka Server, 因此設爲 false
    register-with-eureka: false
    #註冊中心地址
    service-url:
      #設置成server2的端口號,相互註冊
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    #服務名稱
    name: eureka-server2

5.配置Eureka Client的註冊中心地址

service-url:
    #這裏同時向兩個註冊中心註冊
    defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

6.分別打開兩個Eureka Server的圖形界面 http://localhost:8761http://localhost:8762,可以發現,Eureka Client已同時註冊到兩個註冊中心上面

此時,已實現了高可用,無論哪一個Eureka Server掛掉了,服務都可用。

3個Eureka Server也是同理,兩兩相互註冊即可,如下圖

建議:實際開發中,建議使用至少2個Eureka Server以實現高可用

分享給你的朋友!

THANDKS

  • End -

一個立志成大腿而每天努力奮鬥的年輕人

伴學習伴成長,成長之路你並不孤單!

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