日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
eureka服務(wù)治理的概念和用法是什么

這篇文章主要介紹“eureka服務(wù)治理的概念和用法是什么”,在日常操作中,相信很多人在eureka服務(wù)治理的概念和用法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”eureka服務(wù)治理的概念和用法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為渾源企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,渾源網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

[TOC]

分布式是現(xiàn)在互聯(lián)網(wǎng)架構(gòu)的首選。在分布式中我們會(huì)有三方理論簡稱CAP

簡稱全稱解釋
CConsistency數(shù)據(jù)一致性
AAvailability可用性,性能
PPartition tolerance分區(qū)容錯(cuò)性

eureka服務(wù)治理的概念和用法是什么

今天我們就來看看分布式中關(guān)于服務(wù)治理這塊的服務(wù)

什么是服務(wù)治理

  • 在多個(gè)服務(wù)之間相互調(diào)用的時(shí)候比較零散,管理起來比較麻煩。當(dāng)被調(diào)用者有所改動(dòng)可能都會(huì)牽扯到調(diào)用者的修改。所以服務(wù)治理應(yīng)運(yùn)而生。

  • spring cloud的Eureka實(shí)現(xiàn)了服務(wù)注冊、服務(wù)調(diào)用、負(fù)載均衡、容錯(cuò)。這也是服務(wù)治理模塊通用功能。

  • 服務(wù)注冊和服務(wù)調(diào)用在eureka看來都是客戶端。eureka服務(wù)是服務(wù)端。所以他是一種典型的CS架構(gòu)。eureka客戶端需要與eureka服務(wù)保持心跳機(jī)制。這樣eureka服務(wù)才會(huì)認(rèn)為客戶端沒有宕機(jī)。

eureka服務(wù)治理的概念和用法是什么

  • 上述的架構(gòu)圖可以清楚的看出,eureka服務(wù)端可集群化,服務(wù)提供者可以集群化??蛻舳司蜎]必要集群化。就算集群化對于eureka服務(wù)來說也是單機(jī)的consumer。

Eureka調(diào)用過程

  • service provider啟動(dòng)時(shí)會(huì)將自己服務(wù)的信息封裝后注冊到eureka注冊中心上。service consumer已provider注冊名去注冊中心尋找到真實(shí)地址并進(jìn)行調(diào)用。

  • 針對service provider的管理對于service consumer來說不需要知道service provider的具體信息。只需要知道service provider的注冊名就行了。在我們集群化后也不用擔(dān)心provider我們具體的調(diào)用地址。負(fù)載均衡也是eureka幫我分配了。我們客戶端只負(fù)責(zé)接口的調(diào)用。

Eureka單機(jī)注冊

Eureka 單機(jī)啟動(dòng)

  • 這里我們不做spring其他的解釋,詳細(xì)請看git分支詳細(xì)代碼

點(diǎn)我下載源碼


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server
  • 在我們新建的項(xiàng)目中pom文件中新增如上gva。就會(huì)將eureka服務(wù)端功能注入。下面我們只需要添加一些配置啟動(dòng)就行了。

  • 添加依賴后我們在springboot項(xiàng)目中yml中添加如下配置

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #表示該模塊作為eureka服務(wù),自己是不需要想自己注冊的,注冊了只是徒增煩惱
    fetch-registry: false # 表示自己就是注冊中心。自己是管理者不是被管理者。
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  • 最后我們在spiringboot啟動(dòng)類上開啟eurekaserver就行了。@EnableEurekaServer

eureka服務(wù)治理的概念和用法是什么

  • 能夠訪問說明我們的eureka服務(wù)正常啟動(dòng)?,F(xiàn)在沒有客戶端注冊上來。所以現(xiàn)在看到DS Replicas列表是空的。

單機(jī)注冊

  • 上面我們已經(jīng)單機(jī)啟動(dòng)了eureka服務(wù)。下面我們看看服務(wù)注冊是否可以。我們已之前payment模塊為例。

  • pom中添加client坐標(biāo)


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-client
  • yml中填入地址

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka
  • 主啟動(dòng)類上添加注解@EnableEurekaClient

eureka服務(wù)治理的概念和用法是什么

集群注冊

  • 現(xiàn)在我們多開幾個(gè)payment進(jìn)行注冊

  • 因?yàn)槲覀兪窃趇dea中開發(fā)的。還沒有打成jar包。也是為了方便調(diào)試這里通過idea直接復(fù)制的payment項(xiàng)目

eureka服務(wù)治理的概念和用法是什么 eureka服務(wù)治理的概念和用法是什么

  • 現(xiàn)在我們看看我們本地idea啟動(dòng)項(xiàng)目的情況 , payment已經(jīng)有兩個(gè)了分別是8001,8002

eureka服務(wù)治理的概念和用法是什么

  • 現(xiàn)在我們看到eureka服務(wù)上也出現(xiàn)了8001,8002了

eureka服務(wù)治理的概念和用法是什么

客戶調(diào)用

  • 還記得我們的feature/cloud-pre上order模塊是如何調(diào)用payment的嗎。是的我們通過resetTemplate進(jìn)行http方式調(diào)用的?,F(xiàn)在我們還是通過他進(jìn)行調(diào)用只不過調(diào)用地址是payment注冊在eureka上的服務(wù)名。

  • 這里客戶端如何注冊和payment配置一樣的。因?yàn)殡m然是order調(diào)用payment,但是對于eureka來說payment和order都是客戶端。所以配置都是一樣的。

eureka服務(wù)治理的概念和用法是什么

  • 現(xiàn)在在單機(jī)的eureka上我們看到了單機(jī)的order服務(wù)和集群的payment服務(wù)。下面我們order調(diào)用payment的地方做如下修改

eureka服務(wù)治理的概念和用法是什么

  • 只是調(diào)用跟地址進(jìn)行了修改。當(dāng)然前提是restTemplate支持了負(fù)載均衡。

eureka服務(wù)治理的概念和用法是什么

  • 下面結(jié)果如何讀者可以自行測試了。http://localhost/order/getpayment/123針對這個(gè)接口調(diào)用多次。會(huì)發(fā)現(xiàn)返回結(jié)果里的服務(wù)端口會(huì)不斷的8001,8002切換。因?yàn)閞estTemplate默認(rèn)是輪詢的。而我們這里payment提供了兩個(gè)服務(wù)。到這里我們就實(shí)現(xiàn)了eureka單機(jī)版的服務(wù)注冊及調(diào)用

Eureka集群注冊

  • 上面是單機(jī)的eurake。下面我們看看eurake集群如何配置。對于eureka客戶端來說注冊到eureka集群上來說非常簡單。

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka,http://www.eureka2/eureka
  • 像上述一樣defaultZone后面直接追加eureka服務(wù)就行了。正常集群都是布置在不同機(jī)器上的。所以域名或者ip都是不同的。如果讀者在一臺(tái)機(jī)器上部署可以通過nginx將不同服務(wù)分配到不同域名下。因?yàn)樵趀ureka服務(wù)端上配置需要用到域名。

  • 客戶端是直接追加。eureka服務(wù)端改動(dòng)也不是很多只需要將hostname配置唯一就行了。

eureka:
  instance:
    hostname: www.zxhtom1.com    #eureka服務(wù)端的實(shí)例名字
  client:
    register-with-eureka: false    #表識(shí)不向注冊中心注冊自己
    fetch-registry: false   #表示自己就是注冊中心,職責(zé)是維護(hù)服務(wù)實(shí)例,并不需要去檢索服務(wù)
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/
  • 所以說如果是單機(jī)部署集群,我們就需要通過nginx轉(zhuǎn)發(fā)下。這里不贅述

idea 如何同一個(gè)項(xiàng)目啟動(dòng)多次

  • 剛才在部署集群的時(shí)候?yàn)榱朔奖阊菔?。我們借助idea啟動(dòng)多個(gè)實(shí)例。在里面分配不同的端口。但是在部署eureka集群是就沒法搞了。因?yàn)樾枰淖兣渲梦募?nèi)容。我們可以在啟動(dòng)的時(shí)候指定外部配置文件

eureka服務(wù)治理的概念和用法是什么

Eureka自我保護(hù)

eureka服務(wù)治理的概念和用法是什么

為什么要自我保護(hù)

  • 上面我們發(fā)現(xiàn)有兩個(gè)8002的payment。為什么會(huì)出現(xiàn)如此奇怪的問題呢。排查發(fā)現(xiàn)一開始我通過idea啟動(dòng)了8001,8002。然后我又通過引入外部配置文件的方式重新啟動(dòng)了8002。這個(gè)時(shí)候原來的8002實(shí)例其實(shí)已經(jīng)掛了。這個(gè)時(shí)候eureka會(huì)認(rèn)為出現(xiàn)50%的客戶端沒有準(zhǔn)時(shí)發(fā)送心跳。50<85 這個(gè)時(shí)候eureka認(rèn)為大批客戶端可能因?yàn)榫W(wǎng)絡(luò)波動(dòng)導(dǎo)致沒有及時(shí)回復(fù)。eureka會(huì)開啟自我保護(hù)機(jī)制。

  • 雖然上面是個(gè)反面列子。也恰恰說明了為什么需要自我保護(hù)。加入這個(gè)時(shí)候8002在其他機(jī)器上因?yàn)榫W(wǎng)絡(luò)延遲被踢出就會(huì)出現(xiàn)冤假錯(cuò)案。所以這也解釋了為什么上述出現(xiàn)兩個(gè)8002.

如何開啟自我保護(hù)

  • 自我保護(hù)的功能是默認(rèn)開啟的。eureka.server.enable-self-preservation: false 我們通過此屬性設(shè)置false就是關(guān)閉自我保護(hù)。

自我保護(hù)如何激活

  • 其實(shí)上面兩個(gè)8002是一種意外。我們無意中觸發(fā)了自我保護(hù)。

  • 自我保護(hù)機(jī)制條件 : 最近一分鐘收到心跳數(shù)線程占總線程85%以下。

  • 低于85%說明沒有指定活躍數(shù)進(jìn)行心跳回復(fù),所以認(rèn)為是網(wǎng)絡(luò)波動(dòng)了。

eureka服務(wù)治理的概念和用法是什么

  • 自我保護(hù)的臨界值= renews(last min)/renews(threshold)

  • 通過計(jì)算我們知道是75% 。 如果不算上正常的8002 。 那就是50% 。 所以不管怎么樣都會(huì)觸發(fā)自我保護(hù)的。

  • 自我保護(hù)也滿足的開篇提到的CAP原理中的A理論。eureka滿足了高可用性原則。及時(shí)客戶端真的宕機(jī)了也要留下。寧可多留也不錯(cuò)殺。這樣就會(huì)導(dǎo)致數(shù)據(jù)不一致的情況。

到此,關(guān)于“eureka服務(wù)治理的概念和用法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


當(dāng)前文章:eureka服務(wù)治理的概念和用法是什么
瀏覽路徑:http://www.dlmjj.cn/article/ippoig.html