成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

[TOC]

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

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

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

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

什么是服務(wù)治理

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

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

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

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

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

Eureka調(diào)用過程

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

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

Eureka單機注冊

Eureka 單機啟動

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

點我下載源碼

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

  • 添加依賴后我們在springboot項目中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啟動類上開啟eurekaserver就行了。@EnableEurekaServer

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

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

單機注冊

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

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

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • yml中填入地址

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

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

集群注冊

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

  • 因為我們是在idea中開發(fā)的。還沒有打成jar包。也是為了方便調(diào)試這里通過idea直接復(fù)制的payment項目

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

  • 現(xiàn)在我們看看我們本地idea啟動項目的情況 , payment已經(jīng)有兩個了分別是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配置一樣的。因為雖然是order調(diào)用payment,但是對于eureka來說payment和order都是客戶端。所以配置都是一樣的。

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

  • 現(xiàn)在在單機的eureka上我們看到了單機的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針對這個接口調(diào)用多次。會發(fā)現(xiàn)返回結(jié)果里的服務(wù)端口會不斷的8001,8002切換。因為restTemplate默認(rèn)是輪詢的。而我們這里payment提供了兩個服務(wù)。到這里我們就實現(xiàn)了eureka單機版的服務(wù)注冊及調(diào)用

Eureka集群注冊

  • 上面是單機的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ù)就行了。正常集群都是布置在不同機器上的。所以域名或者ip都是不同的。如果讀者在一臺機器上部署可以通過nginx將不同服務(wù)分配到不同域名下。因為在eureka服務(wù)端上配置需要用到域名。

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

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

idea 如何同一個項目啟動多次

  • 剛才在部署集群的時候為了方便演示。我們借助idea啟動多個實例。在里面分配不同的端口。但是在部署eureka集群是就沒法搞了。因為需要改變配置文件內(nèi)容。我們可以在啟動的時候指定外部配置文件

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

Eureka自我保護

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

為什么要自我保護

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

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

如何開啟自我保護

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

自我保護如何激活

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

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

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

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

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

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

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

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

分享題目:eureka服務(wù)治理的概念和用法是什么
本文來源:http://jinyejixie.com/article6/ippoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、域名注冊面包屑導(dǎo)航、移動網(wǎng)站建設(shè)網(wǎng)站營銷、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
咸宁市| 东海县| 措美县| 新密市| 孙吴县| 波密县| 樟树市| 石棉县| 家居| 来凤县| 同心县| 上思县| 隆子县| 二连浩特市| 通海县| 敦化市| 思南县| 喀喇| 托克逊县| 宜兴市| 长治县| 磐石市| 伽师县| 云梦县| 金湖县| 泸州市| 张家港市| 江源县| 临澧县| 时尚| 大厂| 瑞金市| 商南县| 五华县| 曲沃县| 梓潼县| 新巴尔虎右旗| 若羌县| 秦皇岛市| 新丰县| 新蔡县|