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

聊聊微服務劃分的姿勢

開發(fā) 架構
業(yè)務維度進行拆分。標準是按照業(yè)務的關聯(lián)程度來決定,關聯(lián)比較密切的業(yè)務適合拆分為一個微服務,而功能相對比較獨立的業(yè)務適合單獨拆分為一個微服務。

大家好,我是不才陳某~

我們知道微服務是一種理念,沒有確切的定義和邊界,好比設計原則,是屬于抽象的概念。在定義不明確的情況下談劃分也是一種各說各話,具體問題需要具體分析,所以這篇文章談到的劃分也不是絕對標準,僅供參考。

有人說微服務不難,難的是服務的劃分,雖然我持保留意見,但是從側面也反應了劃分具有一定的困難。這里的矛盾在于粒度,如果粒度太大了,分和不分似乎都差不多;如果粒度太小了,聚合、發(fā)布、調用鏈、調試等都是坑。

以下談到的拆分是前人經驗的總結,我羅列了三種行家的拆分姿勢,每個的的經驗和視野不同,各有偏頗,我在這里更多的是談共鳴和感受,希望對你有所啟發(fā)。

推薦Java工程師技術指南:https://github.com/chenjiabing666/JavaFamily

拆分姿勢

姿勢一:新浪微博微服務專家胡忠想從縱橫兩個維度來劃分,簡單粗暴

1. 縱向拆分

從業(yè)務維度進行拆分。標準是按照業(yè)務的關聯(lián)程度來決定,關聯(lián)比較密切的業(yè)務適合拆分為一個微服務,而功能相對比較獨立的業(yè)務適合單獨拆分為一個微服務。

2. 橫向拆分

從公共且獨立功能維度拆分。標準是按照是否有公共的被多個其他服務調用,且依賴的資源獨立不與其他業(yè)務耦合。

縱向以業(yè)務為基準,關系鐵的在一起;橫向功能獨立的在一起。我想如果拆分這么簡單,你有底氣拆,敢拆嗎?所以我們又繼續(xù)比對一下其他專家的言論。

?

??

圖片

??


姿勢二:阿里的小伙伴從綜合的維度來看,部分維度和上面會有重合

1. 服務拆分要迎合業(yè)務的需要

充分考慮業(yè)務獨立性和專業(yè)性,避免以團隊來定義服務邊界,從而出現“土匪”搶地盤,影響團隊信任。

這個維度和上面的類似,但是強調的是業(yè)務和團隊成員的各自獨立性,對上面是一種很好的補充。

2. 拆分后的維護成本要低于拆分前

這里的維護成本包括:人力、物力、時間。

這里的成本對大部分中小團隊來說都是必須要考慮的重要環(huán)節(jié),如果投入和收益不能成正比,或者超出領導的預算或者市場窗口,那么先進的技術就是絆腳石,千萬不要迷戀技術,所謂工程師思維千萬要不得。關注公眾號:碼猿技術專欄,回復關鍵詞:1111 獲取阿里內部Java性能優(yōu)化手冊!

拆分不僅僅是架構的調整,組織結構上也要做響應的適應性優(yōu)化

確保拆分后的服務由相對獨立的團隊負責維護。

這句話怎么理解呢?傳統(tǒng)的團隊劃分是按照產品部、前端、后端橫向劃分,微服務化以后的團隊可能就會是吃一張披薩餅的人數,產品、前端、后端被歸類到服務里面,以服務為中心來分配人數。

拆分最有價值的結果是提高了系統(tǒng)的可擴展性

把具有不同擴展性要求的服務拆分出來,分別進行部署,降低成本,提高效率。比如全文搜索服務。

這點和上面的按功能獨立性來拆分有點類似,功能獨立其實就是面向可擴展性。

3. 考慮軟件發(fā)布頻率

比如把20%經常變動的部分進行抽離,80%不經常變動的單獨部署和管理。說白了就是按照8/2原則進行拆分。這個拆分的好處很明顯,可以盡可能的減少發(fā)布產生的后遺癥,比如用戶體驗、服務相互干擾等。關注公眾號:碼猿技術專欄,回復關鍵詞:1111 獲取阿里內部Java性能優(yōu)化手冊!

但是這里有一個問題,假如20%的服務分屬于不同的業(yè)務層面,那該怎么辦?所以這里的拆分應該有個優(yōu)先級,在拆分相互沖突的時候應該要優(yōu)先考慮權重比較高的那個。?


??

圖片

??


姿勢三:資深技術專家李運華在他的架構書中給出的拆分

1. 基于業(yè)務邏輯

將系統(tǒng)中的業(yè)務按照職責范圍進行識別,職責相同的劃分為一個單獨的服務。這種業(yè)務優(yōu)先的方式在前面兩種姿勢當中都出現過,可見是最基本,最重要的劃分方式(沒有之一)。

2. 基于穩(wěn)定性

將系統(tǒng)中的業(yè)務模塊按照穩(wěn)定性進行排序。穩(wěn)定的、不經常修改的劃分一塊;將不穩(wěn)定的,經常修改的劃分為一個獨立服務。比如日志服務、監(jiān)控服務都是相對穩(wěn)定的服務,可以歸到一起。這個很類似上面提到的2/8原則,80%的業(yè)務是穩(wěn)定的。

至此你會發(fā)現服務的拆分真的沒有絕對的標準,只有合理才是標準。

3. 基于可靠性

同樣,將系統(tǒng)中的業(yè)務模塊按照可靠性進行排序。對可靠性要求比較高的核心模塊歸在一起,對可靠性要求不高的非核心模塊歸在一塊。

這種拆分的高明可以很好的規(guī)避因為一顆老鼠屎壞了一鍋粥的單體弊端,同時將來要做高可用方案也能很好的節(jié)省機器或帶寬的成本。

4. 基于高性能

同上,將系統(tǒng)中的業(yè)務模塊按照對性能的要求進行優(yōu)先級排序。把對性能要求較高的模塊獨立成一個服務,對性能要求不高的放在一起。比如全文搜索,商品查詢和分類,秒殺就屬于高性能的核心模塊。

?

??

圖片

??


姿勢盤點:以上不同拆分姿勢各有千秋,異曲同工

  • 對業(yè)務邏輯均不約而同的放在第一位
  • 對業(yè)務模塊的穩(wěn)定性和可靠性,對功能的獨立性、可擴展性都有相似的看法
  • 強調拆分應該是多選,而不是單選。具體情況具體分析,可以自由靈活排列組合。

推薦Java工程師技術指南:https://github.com/chenjiabing666/JavaFamily,star支持一下!

題外話

如果你把上面的劃分角度背下來了拿去現場套,可能還會遇到矛盾或爭議。

業(yè)務矛盾

假如我們按照業(yè)務來劃分,根據粒度大小,可能存在以下兩種:

  • 第一種分為商品、交易、用戶3個服務;
  • 第二種分為商品、訂單、支付、物流、買家、賣家6個服務。

3 VS 6,這該怎么辦?

如果你的團隊只有9個人,那么分成3個是合理的,如果有18個人,那么6個服務是合理的。這里引入團隊成員進行協(xié)助拆分。

可見拆分的姿勢不是單選,而是多選的。這個時候必須要考慮團隊成員數量。

在拆分遇到爭議的時候,一般情況下我們增加一項拆分條件,雖然不是充要條件,但至少我們的答案會更加接近真理。

除了業(yè)務可能存在爭議,其他的劃分也會有爭議,比如一個獨立的服務到底需要多少人員的配置?

推薦Java工程師技術指南:https://github.com/chenjiabing666/JavaFamily,star支持一下!

三個火槍手(人員配置)

上面提到的人員數量配置,這里為什么是9和18呢?(這里的團隊配置參考李云華前輩提到的三個火槍手的觀點)

換一種問法,為什么說是三個人分配一個服務(當然,成員主要是后端人員)?

  • 假設是1個人,請個假、生個病都不行。一個人會遇到單點的問題,所以不合理。
  • 假設是2個人,終于有備份了,但是抽離一個后,剩下1個壓力還是很大,不合理。
  • 假設是3個人,抽離一個還有2個在。而且數字3是個穩(wěn)定而神奇數字,用得好事半功倍。特別是遇到技術討論,3個人相對周全,如果是2個可能會各持己見,帶有自我的偏見和盲區(qū)。

那么這個3是不是就是穩(wěn)定的數量呢?

假設你做的是邊開飛機邊換引擎的重寫工作,那么前期3個人都可能捉襟見肘。但是到了服務后期,你可能1個就夠了。

所以3在我的理解應該一個基準線,不同的時間段會有上下波動,但是相對穩(wěn)定。

?

??

圖片

??

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2021-02-07 09:05:56

微服務結構云原生

2023-12-15 09:57:13

微服務鏈路服務

2021-07-20 08:03:43

微服務應用程序

2022-11-02 08:31:53

BFF架構App

2018-12-06 14:56:46

微服務隔離熔斷

2018-05-09 08:18:26

微服務改造架構

2020-11-26 18:18:21

微服務業(yè)務規(guī)模技術

2024-04-19 08:49:50

微服務RPC事件驅動

2022-08-04 08:46:16

單體架構微服務事務管理

2023-11-06 08:26:11

Spring微服務架構

2023-03-01 08:57:32

2024-07-31 09:09:20

2024-02-21 07:24:21

微服務單體架構MVC

2024-11-29 13:37:56

2021-04-02 09:50:14

微服務分布式鎖Java

2017-10-24 15:25:46

微服務架構.識別

2023-09-05 08:53:51

2021-01-13 09:27:31

微服務API分布式

2022-11-08 08:35:53

架構微服務移動

2021-08-17 10:37:10

分層設計領域劃分架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区在线免费 | 精久久久| 色资源站| 久久久一区二区三区 | 久草新视频 | 中文字幕一区二区三区四区 | 成人免费高清 | 国产在线色 | 国产精品亚洲成在人线 | 在线观看亚洲精品视频 | 日批日韩在线观看 | 国产亚洲精品美女久久久久久久久久 | 观看av| 久久久91精品国产一区二区三区 | 国产精品久久久久久久一区二区 | 欧美成人一区二区三区 | 国产一区二区在线免费观看 | 国产乱码精品一区二区三区中文 | 色.com | 天天艹| 一级黄色录像毛片 | 全部免费毛片在线播放网站 | 一区二区三区在线电影 | 日韩亚洲欧美综合 | 91久久久久 | 日本不卡一区二区 | 成人免费看片网 | 欧美一级特黄aaa大片在线观看 | 中文字幕av网站 | 亚洲一区成人 | 国产亚洲精品成人av久久ww | av片网 | 网址黄 | 日韩和的一区二在线 | 欧美一区二区免费电影 | 欧美日韩国产一区二区三区 | 人人叉| 欧美在线一区二区三区 | 久久久久久国产精品免费免费男同 | 国产精品国产三级国产aⅴ中文 | 国产精品久久久久久婷婷天堂 |