色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

微服務架構多微才合適

lhl545545 ? 來源:電子發燒友網 ? 2018-02-07 17:14 ? 次閱讀

一、互聯網架構為什么要進行服務化-總結

上一篇和大伙交流了一下,隨著數據量、并發量、業務復雜度的增長,互聯網架構會出現以下問題:

(1)代碼到處拷貝

(2)底層復雜性擴散

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

(4)SQL質量得不到保障,業務相互影響

(5)數據庫耦合

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

服務化之后,可能會引發分布式事務的問題,“沒人愿意引入分布式事務,當基于業務水平拆分的時候,要業務專家介入,合理拆分服務化,以后就服務內高內聚,事務可以保證,對于夸服務調用,通過補償等手段,只要最終一致性就行,畢竟連現在的銀行轉賬都不是強一致性。”

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

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

(1)RPC服務超時,服務調用者應有一些應對策略,比如重發

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

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

二、互聯網微服務架構多“微”才適合

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

【粗粒度:一個服務層】

微服務架構多微才合適

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

微服務架構多微才合適

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

細節:微信單對單消息是一個寫多讀少的業務,故沒有緩存。

【一個子業務一個service】

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

微服務架構多微才合適

(1)用戶相關的子業務有user-service

(2)好友相關的子業務有friend-service

(3)群組相關的子業務有group-service

(4)消息相關的子業務有msg-service

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

服務粒度變細之后,出現一個新的問題,業務與服務的連接關系變復雜了,有什么好的優化方案么?

微服務架構多微才合適

常見的,加入一個高可用服務分發層集群,并在協議設計時加入服務號,可以減少蜘蛛網狀的依賴關系:

(1)調用方依賴分發層,傳入服務號

(2)分發層依賴服務層,通過服務號參數分發

【一個數據庫對應一個service】

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

一個子業務對應一個service的玩法是:

微服務架構多微才合適

(1)服務層,整個群業務是一個service

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

拆分成一個數據表一個service,則架構會變成這樣:

微服務架構多微才合適

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

【一個接口對應一個service】

微服務架構中更極端的,甚至一個接口對應一個微服務,這樣的話,架構就從:

微服務架構多微才合適

(1)修改群信息服務

(2)增加群信息服務

(3)獲取群信息服務

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

三、粒度粗細的優劣

上文中談到的服務化與微服務,不同粒度的服務化各有什么優劣呢?

總的來說,細粒度拆分的優點有:

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

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

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

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

(5)擴展性更好

(6)…

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

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

(2)系統之間的依賴關系也更復雜

(3)運維復雜度提升

(4)監控更加復雜

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

(6)…

關于微服務架構的“粒度”問題,以及各粒度的優劣,大伙有什么好的看法,歡迎補充,建設性的意見將在后續文中和大伙share。

四、結束的話

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

微服務架構多微才合適

末了,討論完微服務架構的粒度,后續文章和大家聊一聊微服務的最佳實踐,需要什么樣的框架、組件、技術能夠將服務化在較短的時間內開展起來,下周和大伙再聊。

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

    關注

    0

    文章

    137

    瀏覽量

    7355
收藏 人收藏

    評論

    相關推薦

    寶藏級微服務架構工具合集

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

    NVIDIA NIM微服務登陸亞馬遜云科技

    經過優化的 NIM 微服務現可在 Amazon Bedrock Marketplace、SageMaker JumpStart 和 AWS Marketplace 上獲取,用于各種 NVIDIA 和生態系統模型。
    的頭像 發表于 12-06 13:33 ?210次閱讀

    k8s微服務架構就是云原生嗎?兩者是什么關系

    k8s微服務架構就是云原生嗎?K8s微服務架構并不等同于云原生,但兩者之間存在密切的聯系。Kubernetes在云原生架構中扮演著核心組件的
    的頭像 發表于 11-25 09:39 ?148次閱讀

    SSR與微服務架構的結合應用

    隨著互聯網技術的快速發展,前端技術棧不斷更新迭代,后端架構也經歷了從單體應用到微服務的變革。在這個過程中,服務端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術,與微服務
    的頭像 發表于 11-18 11:34 ?332次閱讀

    架構與設計 常見微服務分層架構的區別和落地實踐

    架構風格越傾向于清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件架構設計過程中又有非常
    的頭像 發表于 10-22 15:34 ?245次閱讀
    <b class='flag-5'>架構</b>與設計 常見<b class='flag-5'>微服務</b>分層<b class='flag-5'>架構</b>的區別和落地實踐

    微服務架構與容器云的關系與區別

    微服務架構與容器云密切相關又有所區別。微服務將大型應用拆分為小型、獨立的服務,而容器云基于容器技術,為微服務提供構建、發布和運行的平臺。區別
    的頭像 發表于 10-21 17:28 ?232次閱讀

    入門級攻略:如何容器化部署微服務

    第一步理解容器化基礎,第二步創建Dockerfile,第三步構建推送鏡像,第四步部署微服務,第五步管理微服務、第六步優化更新。容器化部署微服務是現代軟件開發中的一種高效方法,可提供良好的可移植性、可擴展性和管理性。容器化部署
    的頭像 發表于 10-09 10:08 ?158次閱讀

    Proxyless的活流量和微服務治理

    1. 引言 1.1 項目的背景及意義 在當今的微服務架構中,應用程序通常被拆分成多個獨立的服務,這些服務通過網絡進行通信。這種架構的優勢在于
    的頭像 發表于 08-28 16:54 ?1592次閱讀
    Proxyless的<b class='flag-5'>多</b>活流量和<b class='flag-5'>微服務</b>治理

    NVIDIA NIM微服務帶來巨大優勢

    服務通過熱門 AI 模型為數百萬開發者帶來高達 5 倍的 token 效率提升,使他們能夠立即訪問在 NVIDIA DGX Cloud 上運行的 NIM 微服務
    的頭像 發表于 08-23 15:20 ?498次閱讀

    采用OpenUSD和NVIDIA NIM微服務創建精準品牌視覺

    全球領先的創意和制作服務機構率先采用 OpenUSD 和 NVIDIA NIM 微服務來創建精準的品牌視覺。
    的頭像 發表于 08-01 14:33 ?430次閱讀

    全新 NVIDIA NeMo Retriever微服務大幅提升LLM的準確性和吞吐量

    企業能夠通過提供檢索增強生成功能的生產就緒型 NVIDIA NIM 推理微服務,充分挖掘業務數據的價值。這些微服務現已集成到 Cohesity、DataStax、NetApp 和 Snowflake 平臺中。
    的頭像 發表于 07-26 11:13 ?848次閱讀
    全新 NVIDIA NeMo Retriever<b class='flag-5'>微服務</b>大幅提升LLM的準確性和吞吐量

    英偉達推出全新NVIDIA AI Foundry服務和NVIDIA NIM推理微服務

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服務和 NVIDIA NIM 推理微服務,與同樣剛推出的 Llama 3.1 系列開源模型一起,為全球企業的生成式 AI 提供強力支持。
    的頭像 發表于 07-25 09:48 ?712次閱讀

    【算能RADXA微服務器試用體驗】Radxa Fogwise 1684X Mini 規格

    通過網絡可以了解到,算能RADXA微服務器的具體規格: 處理器:BM1684X 算力:高達32Tops INT8峰值算力 內存:16GB LPDDR4X 內存 存儲:64GB eMMC 編程框架
    發表于 02-28 11:21

    Java微服務隨機掉線排查過程簡析

    我們的業務共使用 11 臺(阿里云)服務器,使用 SpringcloudAlibaba 構建微服務集群, 共計 60 個微服務, 全部注冊在同一個 Nacos 集群。
    的頭像 發表于 01-13 17:41 ?943次閱讀
    Java<b class='flag-5'>微服務</b>隨機掉線排查過程簡析

    gpu服務器評測

    GPU服務器進行評測。 一、超GPU服務器概述 超GPU服務器是一種基于超
    的頭像 發表于 01-10 10:37 ?1396次閱讀
    主站蜘蛛池模板: 99热最新网站| BL全肉多攻NP高H| 大胸美女裸身色诱网站| 日本十八禁无遮拦啪啪漫画| 国产1769一七六九视频在线| 亚洲第一成年人网站| 精品久久免费视频| 99re久久超碰视频精品| 日本高清无人区影院| 国产色青青视频在线观看| 伊人久久影院| 日本视频久久| 久草精品在线| 宝贝你骚死哥了好爽| 亚洲 无码 制服 日韩| 老湿影院色情a| 大咪咪dvd| 伊人久久大香线蕉电影院| 妻子+免费观看完整| 国产线精品视频在线观看| 91精品国产品国语在线不卡| 天天躁日日躁狠狠躁中文字幕老牛 | 成 人 免费 黄 色 网站无毒下载| 窝窝午夜色视频国产精品东北| 久久久久久久电影| 公粗挺进了我的密道在线播放贝壳| 亚洲一区精品在线| 人人碰国产免费线观看| 精品国产自在现线拍国语| 打开双腿狠狠蹂躏蜜桃臀| 一个人免费视频在线观看| 日本色女孩影院| 久久精品国产视频澳门 | 亚洲精品无码不卡在线播HE| 轻轻cao| 久久这里只有精品视频e| 国产欧美无码亚洲| 岛国大片在线观看完整版| 69久久国产露脸精品国产| 亚洲精品永久免费| 王小军怎么了最新消息|