摘要:在微服務(wù)架構(gòu)中,注冊中心是核心的基礎(chǔ)服務(wù)之一。在微服務(wù)架構(gòu)流行之前,注冊中心就已經(jīng)開始出現(xiàn)在分布式架構(gòu)的系統(tǒng)中。服務(wù)提供者注冊到注冊中心,服務(wù)消費者到注冊中心訂閱,同時,注冊中心中的變更也會通知服務(wù)消費者。
在微服務(wù)架構(gòu)中,注冊中心是核心的基礎(chǔ)服務(wù)之一。在微服務(wù)架構(gòu)流行之前,注冊中心就已經(jīng)開始出現(xiàn)在分布式架構(gòu)的系統(tǒng)中。Dubbo是一個在國內(nèi)比較流行的分布式框架,被大量的中小型互聯(lián)網(wǎng)公司所采用,Dubbo是一個非常實用的框架,提供了比較完善的服務(wù)治理功能,而服務(wù)治理的實現(xiàn)主要依靠的就是注冊中心。
1 什么是注冊中心注冊中心可以說是微服務(wù)架構(gòu)中的”通訊錄“,它記錄了服務(wù)和服務(wù)地址的映射關(guān)系。在分布式架構(gòu)中,服務(wù)會注冊到這里,當(dāng)服務(wù)需要調(diào)用其它服務(wù)時,就這里找到服務(wù)的地址,進行調(diào)用。
舉個現(xiàn)實生活中的例子,比如說,我們手機中的通訊錄的兩個使用場景:
當(dāng)我想給張三打電話時,那我需要在通訊錄中按照名字找到張三,然后就可以找到他的手機號撥打電話。
李四辦了手機號,那么他把手機號告訴我,我把李四的號碼存進通訊錄,后續(xù),我就可以從通訊錄找到他。
上述兩個場景就是我們在微服務(wù)架構(gòu)中常常提到的:
服務(wù)發(fā)現(xiàn)
服務(wù)注冊
2 為什么需要注冊中心了解了什么是注冊中心,那么我們繼續(xù)談?wù)劊瑸槭裁葱枰灾行摹?/p>
在分布式系統(tǒng)中,我們不僅僅是需要在注冊中心找到服務(wù)和服務(wù)地址的映射關(guān)系這么簡單,我們還需要考慮更多更復(fù)雜的問題:
服務(wù)注冊后,如何被及時發(fā)現(xiàn)
服務(wù)宕機后,如何及時下線
服務(wù)如何有效的水平擴展
服務(wù)發(fā)現(xiàn)時,如何進行路由
服務(wù)異常時,如何進行降級
注冊中心如何實現(xiàn)自身的高可用
這里問題的解決都依賴于注冊中心。簡單看,注冊中心的功能有點類似于DNS服務(wù)器或者負載均衡器,而實際上,注冊中心作為微服務(wù)的基礎(chǔ)組件,可能要更加復(fù)雜,也需要更多的靈活性和時效性。
3 常見的注冊中心結(jié)合開發(fā)中常用的微服務(wù)架構(gòu)體系,再看注冊中心。以下主要以Java體系中常用的微服務(wù)框架為例進行說明。
3.1 Dubbo中的注冊中心Dubbo支持多種注冊中心的實現(xiàn),常用的是:
Redis
Zookeeper
此處,可以看到,以上的實現(xiàn)主要是為了集中存儲服務(wù)的信息。而這些組件本身就可以做到高性能和高可用。
? 圖1 Dubbo官方架構(gòu)圖
在Dubbo架構(gòu)圖中,可以看到注冊中心(Registry)位于頂端,所有的服務(wù)治理相關(guān)的操作都圍繞它進行。服務(wù)提供者(Provider)注冊到注冊中心,服務(wù)消費者(Comsumer)到注冊中心訂閱,同時,注冊中心中的變更也會通知服務(wù)消費者。
3.2 SpringCloud中的注冊中心目前,SpringCloud可以說是最流行的微服務(wù)架構(gòu),SpingCloud整個體系功能完備,與Spring框架完美契合,開箱即用,極大降低了落地微服務(wù)架構(gòu)的開發(fā)成本。在SpringCloud中,也是支持多種注冊中心的:
Spring Cloud Netflix Eureka
Spring Cloud Zookeeper
Spring Cloud Consul
以上三種,最常用的主要是Eureka,官方是這樣定義的:
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
與Dubbo對于服務(wù)注冊的抽象有所不同,Eureka使用的是C/S架構(gòu):
Eureka Server,注冊中心
Eureka Client,服務(wù)消費者和服務(wù)提供者
而且,Eureka支持多節(jié)點的部署,從而保證高可用。生產(chǎn)環(huán)境中,常用的方式是部署兩臺節(jié)點,做成一個P2P的集群。
4 小結(jié)本文主要從概念上對微服務(wù)架構(gòu)中的注冊中心進行分析講解,讓讀者從宏觀上去理解注冊中心。文中主要以常見的注冊中心為例,當(dāng)然,在其他的微服務(wù)架構(gòu)體系中,這些原理是基本類似的。讀者可以結(jié)合自己的實際開發(fā)經(jīng)驗,理解注冊中心的概念,從而更好地駕馭微服務(wù)。
持續(xù)獲得最新文章,關(guān)注我:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11912.html
摘要:是一個相對比較新的微服務(wù)框架,年才推出的版本雖然時間最短但是相比等框架提供的全套的分布式系統(tǒng)解決方案。提供線程池不同的服務(wù)走不同的線程池,實現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)器雪崩的問題。通過互相注冊的方式來進行消息同步和保證高可用。 Spring Cloud 是一個相對比較新的微服務(wù)框架,...
摘要:認證鑒權(quán)與權(quán)限控制在微服務(wù)架構(gòu)中的設(shè)計與實現(xiàn)一引言本文系認證鑒權(quán)與權(quán)限控制在微服務(wù)架構(gòu)中的設(shè)計與實現(xiàn)系列的第一篇,本系列預(yù)計四篇文章講解微服務(wù)下的認證鑒權(quán)與權(quán)限控制的實現(xiàn)。 java 開源項目收集 平時收藏的 java 項目和工具 某小公司RESTful、共用接口、前后端分離、接口約定的實踐 隨著互聯(lián)網(wǎng)高速發(fā)展,公司對項目開發(fā)周期不斷縮短,我們面對各種需求,使用原有對接方式,各端已經(jīng)很...
摘要:京東云監(jiān)控響應(yīng)實踐京東云運維平臺為數(shù)萬臺機器提供監(jiān)控,部署,機器管理,權(quán)限管理,安全管理,審計和運營分析等功能,為京東云所有的業(yè)務(wù)在各類異構(gòu)網(wǎng)絡(luò)環(huán)境下提供標(biāo)準(zhǔn)和統(tǒng)一的運維支撐能力。 showImg(https://segmentfault.com/img/bVbsKlQ); 微服務(wù)本身并沒有一個嚴(yán)格的定義,不過從很多人的反饋來看,大家都達成了這樣一個共識:微服務(wù)是一種簡單的應(yīng)用,大概有...
摘要:系統(tǒng)中的各個微服務(wù)可被獨立部署,各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。傳統(tǒng)架構(gòu)升級困難。新的輕量級協(xié)議容器化的出現(xiàn)。熔斷處理在微服務(wù)出現(xiàn)問題時防止出現(xiàn)雪崩效應(yīng)。 聊完Spring Boot,我們來看看Spring Boot最重要的一方面的應(yīng)用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我們先聊聊微服務(wù)。 ...
閱讀 2242·2021-11-17 09:33
閱讀 2783·2021-11-12 10:36
閱讀 3406·2021-09-27 13:47
閱讀 894·2021-09-22 15:10
閱讀 3494·2021-09-09 11:51
閱讀 1399·2021-08-25 09:38
閱讀 2762·2019-08-30 15:55
閱讀 2613·2019-08-30 15:53