chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微服務(wù)架構(gòu)是一個龐大復(fù)雜的工程,為什么說它龐大復(fù)雜呢?

Linux愛好者 ? 來源:lq ? 2019-05-13 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

微服務(wù)架構(gòu)是一個龐大復(fù)雜的工程,為什么說它龐大復(fù)雜呢?因為想要做好微服務(wù),就必須先要建設(shè)好微服務(wù)所需的一系列基礎(chǔ)設(shè)施和組件。我在前面的文章《架構(gòu)設(shè)計之「 微服務(wù)入門 」》中已經(jīng)初步介紹過了這些組件,包括:服務(wù)注冊、服務(wù)網(wǎng)關(guān)、配置中心、服務(wù)框架、服務(wù)監(jiān)控、服務(wù)追蹤、服務(wù)治理等。

只有將這些基礎(chǔ)設(shè)施搭建完善了,微服務(wù)實踐的道路才能走的穩(wěn)、走的遠(yuǎn)。后面的文章中會依次把每一個基礎(chǔ)組件都詳細(xì)分析一下。今天我們就先挑選「 服務(wù)注冊 」聊一聊。

一、為什么需要「 服務(wù)注冊 」?

我們先來舉一個生活中的例子:在以前互聯(lián)網(wǎng)還不夠發(fā)達(dá)的時候,“114號碼百事通”大家應(yīng)該很熟悉,有啥需求就會去打個電話查詢一下。比如想知道附近電影院電話是多少,就會先去打114問一下。那114為啥知道這么多信息呢,還不是因為各類服務(wù)者(商店、機構(gòu)等)都已經(jīng)在114上登記了嘛。所以這里的“114百事通”就相當(dāng)于一個服務(wù)注冊中心了,這里的各類商店機構(gòu)就相當(dāng)于可以提供不同服務(wù)的服務(wù)者了,而打電話的我們就是去尋找這些服務(wù)的消費者了。

我們再來回到微服務(wù)架構(gòu)中,一般集群都會部署很多個微服務(wù)節(jié)點。這些節(jié)點一般也具備這2種角色,稱為:“服務(wù)的提供者” 和 “服務(wù)的消費者”。

“服務(wù)消費者”需要調(diào)用“服務(wù)提供者”的API來獲得服務(wù)。當(dāng)“服務(wù)提供者”的節(jié)點有增加或減少的時候,也得讓調(diào)用者(“服務(wù)消費者”)及時的知曉。而在大規(guī)模集群中,一般節(jié)點數(shù)目都很多,節(jié)點變化頻繁,通過手動去維護(hù)這些節(jié)點的狀態(tài)是不現(xiàn)實的,因此需要一個叫做“服務(wù)注冊中心”的組件來實現(xiàn)。

“服務(wù)提供者”將自己的服務(wù)地址等信息登記到“服務(wù)注冊中心”中,調(diào)用者(“服務(wù)消費者”)需要的時候,每次都先去“服務(wù)注冊中心”查詢即可。既解決了人工維護(hù)微服務(wù)節(jié)點狀態(tài)的問題,也能解決多節(jié)點間負(fù)載均衡的問題。

二、「 服務(wù)注冊 」的實現(xiàn)原理是什么?

在分析其原理之前,我們先來看一下這里包含的一些角色,有三類:“服務(wù)提供者”、“服務(wù)消費者”、“服務(wù)注冊中心”。

其中“服務(wù)提供者”需要將自己的服務(wù)信息注冊到“服務(wù)注冊中心”里面。而“服務(wù)消費者”需要到“服務(wù)注冊中心”里面去查詢有哪些服務(wù)可以調(diào)用。因此,我們可以分為兩個視角去分析原理:

從“服務(wù)提供者”的視角, “服務(wù)提供者”向“服務(wù)注冊中心”進(jìn)行注冊:

登記注冊具體的也有為兩種方式,一種是自己注冊,另一種是第三方注冊。

自己注冊:

如圖,自己注冊就是指微服務(wù)節(jié)點在啟動的時候,自己去服務(wù)注冊中心登記注冊了,把自己的信息和狀態(tài)傳過去。這種方式整體結(jié)構(gòu)比較簡單,對于注冊中心而言也比較省事,但是對于微服務(wù)節(jié)點而言,每個微服務(wù)都得包含這么一段注冊的邏輯代碼,架構(gòu)上看起來不是很優(yōu)美。

再拿114百事通的例子解釋一遍,自己注冊就表示這是商家開店之后自己跑去告訴114電話臺,說自己商店開業(yè)了,目前在經(jīng)營著哪些服務(wù),請求114登記下來。

第三方注冊:

如圖,第三方注冊就是指有一個“服務(wù)管理器”(圖中的Service Manager),這個“服務(wù)管理器”會去管理所有的微服務(wù)和進(jìn)程,以輪詢或其它方式去檢查有哪些微服務(wù)實例正在運行,會將這些微服務(wù)實例自動更新到服務(wù)注冊中心。這是目前比較常用的方式,例如Eureka就是采用這個模式。

如果再拿114百事通的例子來講,就相當(dāng)于114中心安排了一個管理員,這個管理員會定期的到街上去看一看有哪些新開的商店就把它登記下來,有哪些關(guān)閉了的商店就從注冊中心刪除掉。

從“服務(wù)消費者”的視角,“服務(wù)消費者”向“服務(wù)注冊中心”查詢和調(diào)用服務(wù):

對于服務(wù)的查詢和調(diào)用,也分為兩種模式:客戶端模式和代理模式。

客戶端模式

在客戶端模式下,“服務(wù)消費者”(圖中的Client)在向“服務(wù)注冊中心”查詢到自己需要調(diào)用的“服務(wù)提供者”的地址之后,“服務(wù)消費者”(客戶端)就會自己根據(jù)地址去訪問微服務(wù)(圖中的第3步 API Gateway是可選項,有API Gateway的情況下,API Gateway起到負(fù)載均衡作用,沒有第3步的話,那就是Client直接調(diào)用Microservice,需要Client自己寫負(fù)載均衡邏輯)。

客戶端模式在實現(xiàn)上比較簡單。

代理模式

在代理模式下,“服務(wù)消費者”(圖中的Client)與 微服務(wù)、“服務(wù)注冊中心”中間有一個 API Gateway組件相隔著。“服務(wù)消費者”只管去找API Gateway訪問即可。至于去注冊中心查詢服務(wù)地址,以及訪問服務(wù)地址的動作都由API Gateway效勞了,最后API Gateway在把結(jié)果返回給“服務(wù)消費者”即可。

這種模式,看起來“服務(wù)消費者”省事了,但是API Gateway模塊卻復(fù)雜了,因為API Gateway就是整個系統(tǒng)的一個非常核心關(guān)鍵節(jié)點了,不僅需要保障自己的穩(wěn)定性和性能,而且還需要處理一些負(fù)載均衡的邏輯。在大型架構(gòu)中,這種模式用的還比較多。

三、「 服務(wù)注冊 」如何實踐?

講完了服務(wù)注冊中心的必要性和原理,我們再來看一下在實際應(yīng)用中應(yīng)該如何去應(yīng)用。雖然我們可以根據(jù)原理自己去開發(fā)一套服務(wù)注冊中心,但是如果沒有特殊需求,還是不建議重復(fù)造輪子了,市面上有很多成熟的方案可以直接使用。

Eureka

Eureka是由Netflix開源,其架構(gòu)如下圖:

從圖中可以看到,我們的服務(wù)(圖中Application Clinet與Application Service)要使用Eureka就需要集成它的SDK(圖中Eureka Client)。圖中的Eureka部署在了三個異地機房,也就是說Eureka是支持多中心部署的。

服務(wù)提供者(Application Service)通過Eureka Client實現(xiàn)服務(wù)的注冊、更新和注銷等。服務(wù)消費者(Application Clinet)通過Eureka Client實現(xiàn)服務(wù)的查詢和調(diào)用。

Eureka支持了與Spring Cloud的集成,所以使用起來也非常方便,目前屬于比較流行的方案。

Consul

Consul是另外一個非常流行的開源組件,如下圖:

Consul是在服務(wù)外進(jìn)行完成一系列動作的,也就是說并不需要服務(wù)節(jié)點去依賴它的SDK,沒有侵入性,所以跨語言的解決能力更強一些。它一般是在服務(wù)節(jié)點外通過一些探針的方法去檢查應(yīng)用是否存活,是否需要注冊或注銷。

Consul也支持Spring Cloud集成,所以使用起來也很方便,也屬于比較流行的方案。

Etcd、Zookeeper

這兩個也有一些公司基于它們來實現(xiàn)服務(wù)注冊,也集成了Spring Cloud,不過不算非常廣泛。

以上,就是對微服務(wù)架構(gòu)中「 服務(wù)注冊 」的一些思考。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4124

    瀏覽量

    45766
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    305

    瀏覽量

    17472
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    148

    瀏覽量

    8079

原文標(biāo)題:微服務(wù)架構(gòu)之「 服務(wù)注冊 」

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    微服務(wù)架構(gòu)和CQRS架構(gòu)基本概念介紹

    微服務(wù)架構(gòu)現(xiàn)在很熱,到處可以看到各大互聯(lián)網(wǎng)公司的微服務(wù)實踐的分享總結(jié)。但是,我今天的分享和微服務(wù)沒有關(guān)系,希望可以帶給大家些新的東西。如果
    發(fā)表于 05-22 09:03

    微服務(wù)架構(gòu)多微才合適

    大家也都認(rèn)可,隨著數(shù)據(jù)量、流量、業(yè)務(wù)復(fù)雜度的提升,服務(wù)架構(gòu)架構(gòu)演進(jìn)中的必由之路,今天要討論的話題是:微服務(wù)
    的頭像 發(fā)表于 02-07 17:14 ?4253次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>多微才合適

    微服務(wù)優(yōu)缺點解析

    微服務(wù)不是名字,而是架構(gòu)的概念。微服務(wù)
    的頭像 發(fā)表于 02-09 09:01 ?9004次閱讀
    <b class='flag-5'>微服務(wù)</b>優(yōu)缺點解析

    java微服務(wù)架構(gòu)有哪些

    本文首先簡單介紹了微服務(wù)的概念以及使用微服務(wù)所能帶來的優(yōu)勢,然后結(jié)合實例介紹了幾個常見的Java微服務(wù)框架。微服務(wù)在開發(fā)領(lǐng)域的應(yīng)用越來越廣泛,因為開發(fā)人員致力于創(chuàng)建更大、更
    的頭像 發(fā)表于 02-09 10:34 ?9272次閱讀
    java<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>有哪些

    微服務(wù)優(yōu)勢_微服務(wù)架構(gòu)的好處與不足

    微服務(wù)是用組小服務(wù)的方式來構(gòu)建應(yīng)用,服務(wù)獨立運行在不同的進(jìn)程中,
    發(fā)表于 02-23 11:24 ?4725次閱讀

    從硬軟件兩方面談自動駕駛這個龐大而且復(fù)雜工程所涉及的技術(shù)

    動駕駛是龐大而且復(fù)雜工程,涉及的技術(shù)很多,大部分答主僅從軟件方面進(jìn)行了介紹,而且太過細(xì)致。我從硬件和軟件兩方面談
    的頭像 發(fā)表于 07-03 09:58 ?3698次閱讀

    什么是微服務(wù)架構(gòu)_微服務(wù)架構(gòu)的優(yōu)缺點及應(yīng)用

    什么是微服務(wù)架構(gòu) 簡單地說,微服務(wù)是系統(tǒng)架構(gòu)上的種設(shè)計風(fēng)格, 它的主旨是將
    的頭像 發(fā)表于 06-02 10:03 ?1.8w次閱讀
    什么是<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>_<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的優(yōu)缺點及應(yīng)用

    微服務(wù)架構(gòu)有哪些_微服務(wù)架構(gòu)設(shè)計模式

    小伙伴們知道常用的微服務(wù)架構(gòu)框架有哪些嗎?上回我們介紹了些常用的微服務(wù)架構(gòu)設(shè)計模式,這次我們就來了解
    的頭像 發(fā)表于 05-17 17:06 ?3w次閱讀
    <b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>有哪些_<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>設(shè)計模式

    OneAccess | 面對龐大復(fù)雜的身份和權(quán)限管理,企業(yè)該怎么辦?

    OneAccess | 面對龐大復(fù)雜的身份和權(quán)限管理,企業(yè)該怎么辦? 隨著各領(lǐng)域加快向數(shù)字化、移動化、互聯(lián)網(wǎng)化的發(fā)展,企業(yè)信息環(huán)境變得龐大復(fù)雜, 身份和權(quán)限管理面臨巨大的挑戰(zhàn): __應(yīng)
    的頭像 發(fā)表于 12-29 16:43 ?1438次閱讀

    微服務(wù)架構(gòu)中的服務(wù)之間如何互相調(diào)用

    微服務(wù)架構(gòu)中,需要調(diào)用很多服務(wù)才能完成項功能。服務(wù)之間如何互相調(diào)用就變成微服務(wù)
    的頭像 發(fā)表于 01-31 09:46 ?2913次閱讀

    什么是微服務(wù)架構(gòu)?

    在Medium,我們的技術(shù)堆棧始于2012年的單片Node.js應(yīng)用程序。我們已經(jīng)構(gòu)建了幾個衛(wèi)星服務(wù),但我們還沒有制定系統(tǒng)地采用微服務(wù)架構(gòu)
    的頭像 發(fā)表于 02-24 11:15 ?1916次閱讀
    什么是<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>?

    從分層架構(gòu)微服務(wù)架構(gòu)介紹(五)

    本文要介紹的是 服務(wù)架構(gòu) (Service-Based Architecture, SBA )。 SBA 可以看成是單體架構(gòu)微服務(wù)架構(gòu)
    的頭像 發(fā)表于 05-10 17:02 ?1591次閱讀
    從分層<b class='flag-5'>架構(gòu)</b>到<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>介紹(五)

    springcloud微服務(wù)架構(gòu)

    Spring Cloud是開源的微服務(wù)架構(gòu)框架,它提供了系列工具和組件,用于構(gòu)建和管理分布式系統(tǒng)中的
    的頭像 發(fā)表于 11-23 09:24 ?2487次閱讀

    docker微服務(wù)架構(gòu)實戰(zhàn)

    隨著云計算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開發(fā)領(lǐng)域中變得越來越流行。微服務(wù)架構(gòu)大型
    的頭像 發(fā)表于 11-23 09:26 ?1219次閱讀

    設(shè)計微服務(wù)架構(gòu)的原則

    微服務(wù)種軟件架構(gòu)策略,有利于改善整體性能和可擴展性。你可能會想,我的團隊需不需要采用微服務(wù),設(shè)計微服務(wù)
    的頭像 發(fā)表于 11-26 08:05 ?1333次閱讀
    設(shè)計<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的原則