成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高并發整體可用性:細說歷經磨難的注冊中心選型

開發 架構
本篇將帶大家 通過分析一個由Zookeeper引發的全鏈路服務雪崩的真實案例,來說明注冊中心的生產場景訴求和選型原則。

[[418629]]

 RPC的目的,是將遠程調用變得像本地調用一樣簡單方便,主要由客戶端、服務端、注冊中心三部分組成。

那么,服務端發布的接口怎么向客戶端暴露?客戶端怎么獲取到服務端的地址并創建連接執行調用邏輯呢?

本篇將帶大家 通過分析一個由Zookeeper引發的全鏈路服務雪崩的真實案例,來說明注冊中心的生產場景訴求和選型原則。

0.1注冊中心

如圖所示

Provider 主要向注冊中心進行服務注冊,以及上報服務節點心跳。

Consumer 需要向注冊中心訂閱感興趣的服務,將對應服務的節點信息緩存到本地,同時接受注冊中心下發的服務變動通知。

注冊中心 的職權也很明確了,就是維護服務信息以及服務實例節點信息,同時監測服務節點心跳,確認節點狀態,在節點狀態不健康時,從實例列表中剔除;同時在節點列表變動時,負責通知訂閱者,以實現服務的及時更新和數據一致性

0.2Zookeeper 注冊中心實現方案

ZK曾經真的非?;?,當然現在也不差。很多年之前,同事曾經笑稱,只要架構里用上ZK,就可以叫分布式。

ZK是經常被提及的注冊中心選型。那么ZK怎么實現注冊中心呢?

節點創建的能力

持久化節點。在節點創建后,就一直存在,直到有刪除操作來主動清除這個節點。

臨時節點。將自身的生命周期和客戶端狀態綁定。如果客戶端會話失效,那么這個節點就會自動被清除掉。注意,這里提到的是會話失效,而非連接斷開。

監聽通知的能力

也就是Watch機制。一個zk的節點可以被監控,包括這個目錄中存儲的數據的修改,子節點目錄的變化,一旦變化可以通知設置監控的客戶端。

這個功能是zookeeper對于應用最重要的特性,通過這個特性可以實現的功能包括配置的集中管理,集群管理,分布式鎖等等。

ZK的上述兩個關鍵能力,讓其成為注冊中心成為可能。

Zookeeper注冊中心

如上圖所示,ZK創建了Service的持久化節點,在Service下創建了Provider和Consumer兩個子節點,也是持久化的;在Provider和Consumer下掛著很多臨時節點,每一個臨時節點,代表一個應用實例。這樣方便根據實例狀態進行動態增減。然后用wtach機制來監聽服務端心跳,通知客戶端服務節點的變動,從而實現注冊中心的整個能力。

0.3用Zookeeper真的合適么

前些時候,一篇阿里為什么不用zookeeper做服務發現的文章被紛紛傳閱。這里,我們對涉及到主要觀點再做下簡要闡述:

1、注冊中心的高可用訴求

問:CAP中注冊中心一定要保證的是誰?

是分區容錯性。

分布式服務依賴網絡進行節點連通,在遇到任何網絡分區故障時,仍然需要能夠保證系統可以對外提供服務(一致性 或 可用性的服務),除非是整個網絡環境都發生了故障。

來源:www.w3cschool.cn/zookeeper/

我們不允許當節點間通信出現故障時,被孤立節點都不能提供服務。最簡單的,可以讓所有節點擁有所有數據。

問:在分區容錯前提下,注冊中心需要保的是一致性還是可用性?

如果保證一致性,是否可以滿足我們對系統的訴求呢。

來源:infoq.cn/article/why-doesnot-alibaba-use-zookeeper

如圖,假如機房3 內部署了ServiceA,ServiceB,連接ZK5,由于發生網絡異常,ZK5節點無法工作,則serviceB的實例都無法進行注冊,處于機房3內的serviceA , 無法正常調用ServiceB的任何實例,這個是我們不希望看到的。

而如果保證可用性,因為機房內部各節點是連通的,因此,調用無影響,這才更符合我們的希望。

然而,zookeeper實際上實現的是CP原則。當在Leader選舉過程中或一些極端情況下,整個服務是不可用的。

但是我們對于注冊中心的可用性訴求,要比數據一致性要大的多。也可以說,生產環境,我們是無法容忍注冊中心無法保證可用性。這對實際生產的影響是災難性的。

2、注冊中心的容災訴求

在實踐中,注冊中心不能因為自身的任何原因破壞服務之間本身的可連通性。所以,如果整個注冊中心宕機了呢?

但是,zookeeper是無法實現跨機房、跨地域容災的。

因為,它只能存在一個leader。

3、服務規模、容量的增長

互聯網的發展,有一定的偶發性,現在的節點上限、帶寬能滿足業務發展,1年后也能滿足么?  3年后呢?

當扛不住后,ZK能水平擴展么?

0.4Zookeeper導致的鏈路雪崩回顧

可能有的人對上述提及的點覺得很有道理,但是沒有多少實際感受。

然而,對于親身經歷過2015年JD 大促時全鏈路雪崩的我來說,卻感觸頗深。

雖然那時候的我,還是個剛參加工作不久的孩子。

歷史回顧:

那個風和日麗的上午,因為促銷活動早就漫天宣傳,我和組里的大佬們,早早的就坐在電腦前監控系統指標。

9、10點鐘,突然有一部分系統報警變多,其中的一部分機器頻繁報警--連不上注冊中心。

正促銷呢,快,重啟一下,試試能不能解決。

然而沒用,更多的服務,以及更多的節點出現問題,異常從固定的機房擴展到了全部節點。

我們知道,注冊中心應該是全掛了。

不斷的重啟希望重連注冊中心,然并卵。

后來有平臺的同學說先暫時不要重啟,等待通知。經過漫長的等待,終于,可以重啟了,果然,都連上了,但是,黃花菜。。。

到底發生了什么:

剛開始,一定是注冊中心某一節點掛了,是因為秒殺活動等節點大量擴容,還是帶寬打滿現在不得而知了,總之是掛了。

因為Zookeeper保證的是CP,那此時只有連接Leader的那些節點能提供服務。所以,出現問題的機房,雖然業務服務器都沒問題,但是沒法提供服務。

可是,用戶請求不會少,大量的請求被分流到了正常的機房的服務器上,業務系統扛不住掛了。連帶著吧注冊中心也沖垮了。

然而,ZK不保證可用性,在選舉Leader等情況下是沒法正常服務的。

所以,大量的業務系統同一時間想通過重啟重連注冊中心,要么是連不上,要么,大量寫操作一起去注冊服務節點,再次把注冊中心沖垮。

畢竟,想要保證在高并發情況下節點創建的全局唯一,必然要付出更多的系統資源。

惡性循環出現了,越重啟,越起不來。。。

所以,后面當平臺要求分批重啟,才使得注冊中心得以恢復正常。

0.5注冊中心的選型

綜上所述,注冊中心是需要保證AP原則,需要考慮擴容和容災。

JD的注冊中心優化方案:

用mysql+redis 的KV形式,代替了zookeeper的樹狀形式;用戶注冊中心尋址來對注冊中心分片,以實現水平擴展,并支持容災。

Eureka2.0的實現

Eureka2.0在方案上支持讀寫集群的分離,這個思路也被螞蟻開源的sofa注冊中心中采用。

其實,大概瀏覽一下就會發現,當前比較火的開源注冊中心,其實都是按高可用,可擴展,可容災恢復的方向上進行的。

摘自:blog.csdn.net/fly910905/article/details/100023415 

 

責任編輯:龐桂玉 來源: Coder的技術之路
相關推薦

2021-09-13 11:44:42

限流降級架構

2021-08-29 20:02:38

高并發集群部署

2021-09-28 13:55:54

高并發限流架構

2024-02-27 09:48:25

Redis集群數據庫

2012-07-04 11:21:07

OpenStack

2013-08-28 10:30:39

vSphere

2012-09-04 13:43:31

SQL Server

2018-02-28 07:31:51

數據中心可用性IT設備

2013-12-04 09:52:50

hadoop

2011-08-25 15:42:49

2024-12-11 08:35:55

2010-12-31 14:36:15

ExchangeSer

2023-07-28 14:39:41

數據中心服務器

2024-08-13 15:42:19

2014-07-31 14:25:53

2010-04-19 14:49:56

Oracle高可用性

2017-03-15 15:14:03

MySQL數據庫高可用性

2011-04-14 13:13:28

SQL serverSQL Mirror

2011-11-25 13:24:56

2011-12-02 10:10:34

RedisFailover
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 夜夜撸av| 成人欧美一区二区三区黑人孕妇 | 亚洲视频手机在线 | 欧美一区二区三 | 亚洲精美视频 | 国产日韩欧美精品一区二区 | 国产精品揄拍一区二区 | 日韩蜜桃视频 | 日本精品一区二区三区在线观看视频 | 亚洲一区在线日韩在线深爱 | www.国产精| 亚洲www | 亚洲精品久久久久久下一站 | 午夜码电影 | av色站| 一区二区三区在线观看视频 | 午夜欧美 | 91免费高清视频 | 黄色片在线免费看 | 日韩一区二区在线观看 | 色噜噜色综合 | 九九精品在线 | 久草在线在线精品观看 | 久久久久久久电影 | 中文字幕1区 | 国产视频久久久 | 草久在线视频 | 午夜久久久久久久久久一区二区 | 亚洲资源在线 | 久久男女视频 | 日韩一级免费观看 | 亚洲人在线观看视频 | 中文字幕一区二区三区不卡 | 亚洲视频三区 | 日韩视频免费 | 羞羞视频网 | www.久久久| 欧美日韩亚洲国产综合 | 中文精品视频 | 国产日韩欧美一区二区 | 超碰欧美|