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

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

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

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

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

lhl545545 ? 來源:電子發(fā)燒友網(wǎng) ? 2018-02-07 17:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、互聯(lián)網(wǎng)架構(gòu)為什么要進行服務(wù)化-總結(jié)

上一篇和大伙交流了一下,隨著數(shù)據(jù)量、并發(fā)量、業(yè)務(wù)復雜度的增長,互聯(lián)網(wǎng)架構(gòu)會出現(xiàn)以下問題:

(1)代碼到處拷貝

(2)底層復雜性擴散

(3)基礎(chǔ)庫(so/jar/dll)耦合

(4)SQL質(zhì)量得不到保障,業(yè)務(wù)相互影響

(5)數(shù)據(jù)庫耦合

“服務(wù)化”是一個很好的解決上述痛點的方案。

服務(wù)化之后,可能會引發(fā)分布式事務(wù)的問題,“沒人愿意引入分布式事務(wù),當基于業(yè)務(wù)水平拆分的時候,要業(yè)務(wù)專家介入,合理拆分服務(wù)化,以后就服務(wù)內(nèi)高內(nèi)聚,事務(wù)可以保證,對于夸服務(wù)調(diào)用,通過補償?shù)仁侄?,只要最終一致性就行,畢竟連現(xiàn)在的銀行轉(zhuǎn)賬都不是強一致性。”

分布式事務(wù)是業(yè)界沒有徹底解決的難題,任何架構(gòu)設(shè)計都是一個折衷,吞吐量?時延?一致性?哪個是主要矛盾,優(yōu)先解決哪個問題。大數(shù)據(jù)、高并發(fā)、業(yè)務(wù)復雜性是主要矛盾的時候,或許“最終一致性”是一個替代“事務(wù)”更好的,或者說業(yè)務(wù)能夠接受的方案。

多了一層服務(wù)層,架構(gòu)實際上是更復雜了,需要引入一系列機制對服務(wù)進行管理,RPC服務(wù)化中需要注意:

(1)RPC服務(wù)超時,服務(wù)調(diào)用者應(yīng)有一些應(yīng)對策略,比如重發(fā)

(2)關(guān)鍵服務(wù)例如支付,要注意冪等性,因為重發(fā)會導致重復操作

(3)多服務(wù)要考慮并發(fā)操作,相當單服務(wù)的鎖機制比如JAVA中的synchronized

二、互聯(lián)網(wǎng)微服務(wù)架構(gòu)多“微”才適合

大家也都認可,隨著數(shù)據(jù)量、流量、業(yè)務(wù)復雜度的提升,服務(wù)化架構(gòu)是架構(gòu)演進中的必由之路,今天要討論的話題是:微服務(wù)架構(gòu)多“微”才合適?

【粗粒度:一個服務(wù)層】

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

最粗獷的玩法,所有基礎(chǔ)數(shù)據(jù)的訪問,都通過一個service訪問,在業(yè)務(wù)不是特別復雜的時候還好,一旦業(yè)務(wù)變復雜了,這個service層會變得非常重,成為耦合點之一,以微信場景為例,假設(shè)有一個通用的服務(wù)層來訪問基礎(chǔ)數(shù)據(jù),這個服務(wù)層可能是這樣的:

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

有一個統(tǒng)一的service層,用戶信息,好友信息,群組信息,消息信息都通過這個service層來走。

細節(jié):微信單對單消息是一個寫多讀少的業(yè)務(wù),故沒有緩存。

【一個子業(yè)務(wù)一個service】

如果所有的信息存儲都在一個service里,那么一個地方出bug,就將影響整個業(yè)務(wù),所以更合理的做法是在服務(wù)層進行細分,架構(gòu)如何細分?垂直拆分是個好的方案,將子業(yè)務(wù)一個個拆出來,那么微信的服務(wù)化架構(gòu)或許會變成這個樣子:

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

(1)用戶相關(guān)的子業(yè)務(wù)有user-service

(2)好友相關(guān)的子業(yè)務(wù)有friend-service

(3)群組相關(guān)的子業(yè)務(wù)有g(shù)roup-service

(4)消息相關(guān)的子業(yè)務(wù)有msg-service

這樣的話,一個service出問題也不會影響其他service,同時數(shù)據(jù)層也按照業(yè)務(wù)垂直拆分開了。

服務(wù)粒度變細之后,出現(xiàn)一個新的問題,業(yè)務(wù)與服務(wù)的連接關(guān)系變復雜了,有什么好的優(yōu)化方案么?

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

常見的,加入一個高可用服務(wù)分發(fā)層集群,并在協(xié)議設(shè)計時加入服務(wù)號,可以減少蜘蛛網(wǎng)狀的依賴關(guān)系:

(1)調(diào)用方依賴分發(fā)層,傳入服務(wù)號

(2)分發(fā)層依賴服務(wù)層,通過服務(wù)號參數(shù)分發(fā)

【一個數(shù)據(jù)庫對應(yīng)一個service】

數(shù)據(jù)訪問service最初是從DAO/ORM的數(shù)據(jù)訪問需求過來的,所以有些公司也有一個數(shù)據(jù)表一個service的玩法。

一個子業(yè)務(wù)對應(yīng)一個service的玩法是:

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

(1)服務(wù)層,整個群業(yè)務(wù)是一個service

(2)存儲層,實際可能對應(yīng)了群信息、群成員、群消息等多個數(shù)據(jù)表

拆分成一個數(shù)據(jù)表一個service,則架構(gòu)會變成這樣:

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

群信息表,群成員表,群消息表等各個數(shù)據(jù)表之間也解耦開了,不會相互影響了。

【一個接口對應(yīng)一個service】

微服務(wù)架構(gòu)中更極端的,甚至一個接口對應(yīng)一個微服務(wù),這樣的話,架構(gòu)就從:

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

(1)修改群信息服務(wù)

(2)增加群信息服務(wù)

(3)獲取群信息服務(wù)

多個服務(wù)操縱同一個數(shù)據(jù)表,使用同一片緩存,每個接口出問題,都不會影響其他接口。

三、粒度粗細的優(yōu)劣

上文中談到的服務(wù)化與微服務(wù),不同粒度的服務(wù)化各有什么優(yōu)劣呢?

總的來說,細粒度拆分的優(yōu)點有:

(1)服務(wù)都能夠獨立部署

(2)擴容和縮容方便,有利于提高資源利用率

(3)拆得越細,耦合相對會減小

(4)拆得越細,容錯相對會更好,一個服務(wù)出問題不影響其他服務(wù)

(5)擴展性更好

(6)…

細粒度拆分的不足也很明顯:

(1)拆得越細,系統(tǒng)越復雜

(2)系統(tǒng)之間的依賴關(guān)系也更復雜

(3)運維復雜度提升

(4)監(jiān)控更加復雜

(5)出問題時定位問題更難

(6)…

關(guān)于微服務(wù)架構(gòu)的“粒度”問題,以及各粒度的優(yōu)劣,大伙有什么好的看法,歡迎補充,建設(shè)性的意見將在后續(xù)文中和大伙share。

四、結(jié)束的話

聊了許多,有網(wǎng)友問,筆者對待服務(wù)化以及微服務(wù)粒度的看法,個人覺得,以“子業(yè)務(wù)系統(tǒng)”粒度作為微服務(wù)的單位是比較合適的:

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

末了,討論完微服務(wù)架構(gòu)的粒度,后續(xù)文章和大家聊一聊微服務(wù)的最佳實踐,需要什么樣的框架、組件、技術(shù)能夠?qū)⒎?wù)化在較短的時間內(nèi)開展起來,下周和大伙再聊。

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

    關(guān)注

    0

    文章

    147

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    華納云VPS容器服務(wù)網(wǎng)格流量管理:實現(xiàn)微服務(wù)高效路由

    在云計算和微服務(wù)架構(gòu)日益普及的今天,華納云香港VPS憑借其優(yōu)越的地緣優(yōu)勢和網(wǎng)絡(luò)自由,成為眾多企業(yè)部署容器化應(yīng)用的熱門選擇。復雜的微服務(wù)架構(gòu)帶來了流量管理的巨大挑戰(zhàn)。本文將深入探討如何利
    的頭像 發(fā)表于 10-16 17:09 ?368次閱讀

    基于RFID與微服務(wù)架構(gòu)的智能倉庫管理系統(tǒng):實現(xiàn)倉儲數(shù)據(jù)的全鏈路精準采集與管控

    針對傳統(tǒng)倉儲管理中普遍存在的賬實不符、流程效率低下及信息孤島等問題,本文介紹一套基于RFID射頻識別技術(shù)與微服務(wù)軟件架構(gòu)的智能倉庫管理系統(tǒng)。系統(tǒng)通過“一物一碼”的電子身份標識,實現(xiàn)了對物資從入庫
    的頭像 發(fā)表于 10-13 11:18 ?392次閱讀
    基于RFID與<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的智能倉庫管理系統(tǒng):實現(xiàn)倉儲數(shù)據(jù)的全鏈路精準采集與管控

    如何基于Nginx構(gòu)建微服務(wù)網(wǎng)關(guān)

    今天,我將分享我們團隊如何基于Nginx構(gòu)建了一個日均處理10億+請求的微服務(wù)網(wǎng)關(guān),以及踩過的那些坑。這套方案已經(jīng)穩(wěn)定運行2年+,經(jīng)歷過多次大促考驗。
    的頭像 發(fā)表于 09-02 16:29 ?605次閱讀

    Jtti海外VPS微服務(wù)架構(gòu)下的日志采集與分析優(yōu)化方案

    隨著跨境業(yè)務(wù)和分布式應(yīng)用的普及,越來越多的企業(yè)在海外VPS上構(gòu)建微服務(wù)架構(gòu),以提升系統(tǒng)擴展性和靈活性。然而,微服務(wù)化帶來了一個新的挑戰(zhàn):日志數(shù)據(jù)分散在多個服務(wù)和節(jié)點中,若缺乏統(tǒng)一采集與
    的頭像 發(fā)表于 08-27 17:13 ?402次閱讀

    電商API的微服務(wù)架構(gòu)優(yōu)化策略

    ? 隨著電子商務(wù)的快速發(fā)展,API(應(yīng)用程序編程接口)已成為電商平臺的核心組件,負責連接用戶、商家和后臺系統(tǒng)。微服務(wù)架構(gòu)通過將應(yīng)用拆分為獨立、可擴展的服務(wù)單元,顯著提升了系統(tǒng)的靈活性和可維護性。然而
    的頭像 發(fā)表于 07-23 14:30 ?382次閱讀
    電商API的<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>優(yōu)化策略

    企業(yè)使用NVIDIA NeMo微服務(wù)構(gòu)建AI智能體平臺

    已發(fā)布的 NeMo 微服務(wù)可與合作伙伴平臺集成,作為創(chuàng)建 AI 智能體的構(gòu)建模塊,使用商業(yè)智能與強大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務(wù)。
    的頭像 發(fā)表于 04-27 15:05 ?978次閱讀

    微服務(wù)架構(gòu)幾種典型的基礎(chǔ)框架,你了解嗎?

    SpringCloud、Dubbo、Dropwizard、Akka等是常見微服務(wù)框架。SpringCloud基于SpringBoot,生態(tài)豐富;Dropwizard輕量且繼承SpringBoot優(yōu)點
    的頭像 發(fā)表于 03-04 11:05 ?766次閱讀

    NVIDIA發(fā)布全新NIM AI Guardrail微服務(wù)

    NVIDIA近期推出了一項旨在保障代理式AI應(yīng)用安全性的重要技術(shù)——NIM AI Guardrail微服務(wù)。這一全新微服務(wù)是NVIDIA NeMo Guardrails軟件工具系列的重要組成部分
    的頭像 發(fā)表于 01-18 11:48 ?1037次閱讀

    NVIDIA NeMo Guardrails引入三項全新NIM微服務(wù)

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服務(wù),能夠為各行業(yè)構(gòu)建 AI 的企業(yè)提高 AI 的準確性、安全性和可控性。
    的頭像 發(fā)表于 01-18 09:39 ?1106次閱讀

    NVIDIA 發(fā)布保障代理式 AI 應(yīng)用安全的 NIM 微服務(wù)

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服務(wù),能夠為各行業(yè)構(gòu)建 AI 的企業(yè)提高 AI 的準確性、安全性和可控性。 ? AI 智能體有望成為能夠完成各種任務(wù)
    發(fā)表于 01-17 16:29 ?279次閱讀

    微服務(wù)容器化部署好處嗎?

    微服務(wù)容器化部署好處有很多,包括環(huán)境一致性、資源高效利用、快速部署與啟動、隔離性與安全性、版本控制與回滾以及持續(xù)集成與持續(xù)部署。這些優(yōu)勢助力應(yīng)用可靠穩(wěn)定運行,提升開發(fā)運維效率,是現(xiàn)代軟件架構(gòu)的優(yōu)質(zhì)選擇。UU云小編認為微服務(wù)容器化
    的頭像 發(fā)表于 01-17 10:22 ?535次閱讀

    容器化能替代微服務(wù)嗎?兩者有何區(qū)別

    容器化不能替代微服務(wù),但它是微服務(wù)的解決方案之一。微服務(wù)架構(gòu)的核心在于將大型應(yīng)用程序拆分為一系列小型、獨立的服務(wù),每個
    的頭像 發(fā)表于 01-13 10:40 ?677次閱讀

    Java微服務(wù)中如何確保安全性?

    在Java微服務(wù)架構(gòu)中確保安全性,可以采取以下措施: 身份驗證與授權(quán): 使用OAuth 2.0和OpenID Connect框架進行身份驗證和授權(quán)。OAuth2允許用戶在不分享憑證的情況下授權(quán)第三方
    的頭像 發(fā)表于 01-02 15:21 ?1011次閱讀

    寶藏級微服務(wù)架構(gòu)工具合集

    大量數(shù)據(jù)流。這些工具各有特色,可根據(jù)具體需求和場景選擇合適的來構(gòu)建和管理微服務(wù)架構(gòu)。以下是UU云小編整理的幾個熱門的微服務(wù)架構(gòu)工具及其概括性
    的頭像 發(fā)表于 12-21 16:33 ?881次閱讀

    NVIDIA NIM微服務(wù)登陸亞馬遜云科技

    經(jīng)過優(yōu)化的 NIM 微服務(wù)現(xiàn)可在 Amazon Bedrock Marketplace、SageMaker JumpStart 和 AWS Marketplace 上獲取,用于各種 NVIDIA 和生態(tài)系統(tǒng)模型。
    的頭像 發(fā)表于 12-06 13:33 ?1085次閱讀