SpringCloud 微服務 (四) Eureka 高可用

根據計劃好的學習目錄 第(一)篇, 在(二),(三)篇以後,本篇記錄Eureka的高可用spring

服務註冊中心是分佈式系統基礎部分,我的以爲理解基礎仍是很重要的服務器

 

服務器掛掉的事件很常見,你們都習慣了,重啓就行了,再掛再重啓唄app

沒有重啓解決不了的問題 --- 來自大網管的發言分佈式

 

做爲吃瓜羣衆表示不服,下面嘗試一下Eureka來解決這些問題ide

 

目前Eureka的server有一個,client也有一個學習

添加一個server B, 讓B與server互相註冊發現服務,互相交換信息,大箭頭是原來的模型,小箭頭是高可用的現實 ,若是server掛了,就可讓client去找server B,反之也同樣,讓服務不間斷測試

不用急着去複製項目,idea 打開eureka,註冊中心(server),url

點擊箭頭的編輯,進入啓動項編輯窗口idea

點擊上面圖片的小圖標,複製一份啓動,下面開始設置不一樣端口來啓動兩個eureka服務中心spa

+ 端口設置=8761 EurekaApplication A

而且改服務中心url 指向 8762 yml中設置,而後啓動,訪問localhost:8761

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka/  #此處再說明一次,本服務做爲client,引入url爲註冊中心地址
    register-with-eureka: false
  server:
    enable-self-preservation: false

以前的client須要啓動,測試被發現.

 

+ 端口設置=8762 EurekaApplication B

而且改服務中心url 指向 8761 yml中設置,而後啓動,訪問localhost:8762

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
    register-with-eureka: false
  server:
    enable-self-preservation: false

8762同樣能夠發現 myclient 服務

 

client 修改yml文件的defaultZone, 以下: 向A,B都註冊,逗號分隔開url

spring:
  application:
    name: myclient

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

 

這時候,上面就能夠實現Eureka高可用,不用擔憂掛掉其中的一臺服務.崩掉了.

仍是要相信總會有奇蹟,若是兩臺都掛掉了,那咱們能夠多加個server,好比3個server的時候,相互之間的註冊方式,好比加了一個EurekaApplication C

client 方: 只須要在yml配置中的defaultZone: A,B,C 追加一個C的url便可

server A方 : 也在yml配置中的defaultZone: B,C 追加一個C的url便可

server B方 : 也在yml配置中的defaultZone: A,C 追加一個C的url便可

server C方 : 也在yml配置中的defaultZone: A,B 加上A,B的url便可

 

 

若是你們以爲3個或更多都發生了奇蹟,全掛了,不要緊,還有辦法並且很是簡單------重啓

 

註冊中心都是須要配置高可用,集羣方式,無論是否是使用Eureka仍是zookeeper,仍是其餘組件,保證中心不掛服務就能夠不間斷

以上大可能是操做實踐,熟悉套路,全部的設計構架也好,組件也好,都有着現實的例子,比方說這個註冊服務發現,就比如最近辦公樓下廣告小視頻,常常放的什麼沒有中間商賺差價,什麼什麼的,你們也應該都聽過,意會下就好.

------------------------------------------------------------------

相關文章
相關標籤/搜索