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