成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 開發(fā)工具 架構(gòu)
以前的文章討論過《互聯(lián)網(wǎng)架構(gòu),究竟為啥要做服務(wù)化?》,隨著數(shù)據(jù)量、并發(fā)量、業(yè)務(wù)復(fù)雜度的增長,那么問題來了,微服務(wù)架構(gòu)多“微”才合適?

以前的文章討論過《互聯(lián)網(wǎng)架構(gòu),究竟為啥要做服務(wù)化?》,隨著數(shù)據(jù)量、并發(fā)量、業(yè)務(wù)復(fù)雜度的增長,互聯(lián)網(wǎng)架構(gòu)會出現(xiàn)以下問題:

  • 代碼到處拷貝
  • 底層復(fù)雜性擴(kuò)散
  • 基礎(chǔ)庫(so/jar/dll)耦合
  • SQL質(zhì)量得不到保障,業(yè)務(wù)相互影響
  • 數(shù)據(jù)庫耦合

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

那么問題來了,微服務(wù)架構(gòu)多“微”才合適?

[[257851]]

行業(yè)內(nèi)有這樣四類常見實踐。

實踐一:統(tǒng)一服務(wù)層

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

這是最粗獷的玩法,所有基礎(chǔ)數(shù)據(jù),都通過一個統(tǒng)一的服務(wù)來進(jìn)行訪問。

在業(yè)務(wù)不是特別復(fù)雜的時候,這不失為一個快速分層的方案,一旦業(yè)務(wù)變得復(fù)雜,服務(wù)層會變得非常重,成為耦合焦點。

以微信場景為例,假設(shè)通過一個通用的服務(wù)層來訪問基礎(chǔ)數(shù)據(jù)。

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

則只有一個統(tǒng)一的服務(wù)層,用戶信息,好友信息,群組信息,消息信息都通過這個服務(wù)層來訪問。

實踐二:一個子業(yè)務(wù)一個服務(wù)

如果所有的數(shù)據(jù)訪問都通過一個服務(wù)層來訪問,那么一行代碼出故障,就將影響整個服務(wù),所以更合理的做法是在服務(wù)層進(jìn)行拆分。

服務(wù)層架構(gòu)如何細(xì)分?

垂直拆分是個好的方案,將子業(yè)務(wù)分拆,那么微信的服務(wù)化架構(gòu)或許會變成下面的樣子:

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

  • 用戶相關(guān)的子業(yè)務(wù),訪問user服務(wù)
  • 好友相關(guān)的子業(yè)務(wù),訪問friend服務(wù)
  • 群組相關(guān)的子業(yè)務(wù),訪問group服務(wù)
  • 消息相關(guān)的子業(yè)務(wù),訪問msg服務(wù)

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

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

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

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

  • 調(diào)用方依賴分發(fā)層,傳入服務(wù)號
  • 分發(fā)層依賴服務(wù)層,通過服務(wù)號參數(shù)分發(fā)

實踐三:一個數(shù)據(jù)庫對應(yīng)一個服務(wù)

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

一個子業(yè)務(wù)對應(yīng)一個服務(wù)的玩法如下圖:

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

  • 服務(wù)層,整個群業(yè)務(wù)是一個服務(wù)
  • 存儲層,實際可能對應(yīng)了群信息、群成員、群消息等多個數(shù)據(jù)表

拆分成一個數(shù)據(jù)庫一個服務(wù),則架構(gòu)會變成下面的樣子:

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

群信息庫,群成員庫,群消息庫之間也解耦開,不會相互影響。

實踐四,一個接口對應(yīng)一個服務(wù)

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

這樣的話,架構(gòu)就從:

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

進(jìn)化為:

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

  • 修改群信息服務(wù)
  • 增加群信息服務(wù)
  • 獲取群信息服務(wù)

多個服務(wù)操縱同一個數(shù)據(jù)庫,任何接口服務(wù)出問題,都不會影響其他接口服務(wù)。使用這種方案的,一般與開發(fā)語言特性結(jié)合比較緊密,例如golang。

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

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

  • 服務(wù)都能夠獨(dú)立部署
  • 擴(kuò)容和縮容方便,有利于提高資源利用率
  • 拆得越細(xì),耦合相對會減小
  • 拆得越細(xì),容錯相對會更好,一個服務(wù)出問題不影響其他服務(wù)
  • 擴(kuò)展性更好

細(xì)粒度拆分的不足也很明顯:

  • 拆得越細(xì),系統(tǒng)越復(fù)雜
  • 系統(tǒng)之間的依賴關(guān)系也更復(fù)雜
  • 運(yùn)維復(fù)雜度提升
  • 監(jiān)控更加復(fù)雜
  • 出問題時定位問題更難

互聯(lián)公司,以“子業(yè)務(wù)”作為微服務(wù)粒度是最常用,訂單服務(wù),用戶服務(wù),支付服務(wù)等等。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2020-05-28 22:41:54

微服務(wù)架構(gòu)并發(fā)量

2016-09-22 15:36:15

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

2024-07-02 14:23:12

2023-07-28 09:23:24

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

2024-01-10 14:40:56

顆粒度開發(fā)微服務(wù)

2018-12-12 09:59:47

微服務(wù)架構(gòu)分布式系統(tǒng)

2017-11-08 09:57:00

分布式微服務(wù)集群

2022-10-17 15:21:18

2023-12-04 07:14:40

通信微服務(wù)

2019-10-16 08:41:46

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

2023-08-31 17:13:01

架構(gòu)軟件開發(fā)

2022-09-07 15:41:01

微服務(wù)開發(fā)容器

2023-07-27 14:03:51

微服務(wù)

2023-11-06 08:26:11

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

2018-08-01 14:20:11

微服務(wù)架構(gòu)人工智能

2023-05-04 07:27:20

NLP 算法微服務(wù)治理

2021-07-07 07:44:20

微服務(wù)Nacos緩存

2024-01-19 11:57:42

2017-07-04 14:57:40

微服務(wù)paasdocker

2018-04-10 10:15:48

微服務(wù)架構(gòu)Nginx
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成年无码av片在线 | 在线视频日韩 | 黄色成人在线 | 欧美日韩国产精品一区 | 二区不卡 | 久久九九99| 久久婷婷av | 国产精品日韩一区二区 | 国产精品一区二区欧美黑人喷潮水 | 欧美成人手机在线 | jlzzjlzz欧美大全 | 精品久久久久久亚洲综合网站 | 成年人视频在线免费观看 | 免费影视在线观看 | 欧美激情在线精品一区二区三区 | 在线视频一区二区三区 | 黄色国产大片 | 午夜视频在线免费观看 | 久久国内| 久久精品这里 | 欧美日韩精品久久久免费观看 | 欧美一级二级视频 | hitomi一区二区三区精品 | 91精品国产92 | 久久最新精品视频 | 91综合网| 欧美日韩综合一区 | a级在线免费 | 亚洲一区二区三区高清 | 黑人粗黑大躁护士 | 99精品欧美一区二区蜜桃免费 | 欧美一区二区三区四区五区无卡码 | 欧美精品三区 | 日本亚洲精品成人欧美一区 | 亚洲黄色高清视频 | 欧美福利一区 | 久久婷婷av | 久久久久久国产精品免费 | 天堂久久网 | h视频免费在线观看 | 欧美精品久久久久久久久久 |