共計 1231 個字符,預計需要花費 4 分鐘才能閱讀完成。
本篇內容介紹了“微服務劃分的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
拆分姿勢 1. 姿勢一:
新浪微博微服務專家胡忠想從縱橫兩個維度來劃分,簡單粗暴:
1.1 縱向拆分
從業務 **** 維度進行拆分。標準是按照業務的關聯程度來決定,關聯比較密切的業務適合拆分為一個微服務,而功能相對比較獨立的業務適合單獨拆分為一個微服務。
1.2 橫向拆分
從公共且獨立功能 **** 維度拆分。標準是按照是否有公共的被多個其他服務調用,且依賴的資源獨立不與其他業務耦合。
縱向以業務為基準,關系鐵的在一起;橫向功能獨立的在一起。我想如果拆分這么簡單,你有底氣拆,敢拆嗎?所以我們又繼續比對一下其他專家的言論。
2. 姿勢二:
阿里的小伙伴從綜合的維度來看,部分維度和上面會有重合。
2.1 服務拆分要迎合業務的需要
充分考慮業務獨立性和專業性,避免以團隊來定義服務邊界,從而出現“土匪”搶地盤,影響團隊信任。
這個維度和上面的類似,但是強調的是業務和團隊成員的各自獨立性,對上面是一種很好的補充。
2.2 拆分后的維護成本要低于拆分前
這里的維護成本包括:人力、物力、時間。
這里的成本對大部分中小團隊來說都是必須要考慮的重要環節,如果投入和收益不能成正比,或者超出領導的預算或者市場窗口,那么先進的技術就是絆腳石,千萬不要迷戀技術,所謂工程師思維千萬要不得。
2.3 拆分不僅僅是架構的調整,組織結構上也要做響應的適應性優化
確保拆分后的服務由相對獨立的團隊負責維護。
這句話怎么理解呢?傳統的團隊劃分是按照產品部、前端、后端橫向劃分,微服務化以后的團隊可能就會是吃一張披薩餅的人數,產品、前端、后端被歸類到服務里面,以服務為中心來分配人數。
2.4 拆分最有價值的結果是提高了系統的 **** 可擴展性
把具有不同擴展性要求的服務拆分出來,分別進行部署,降低成本,提高效率。比如全文搜索服務。
這點和上面的按功能獨立性來拆分有點類似,功能獨立其實就是面向可擴展性。
2.5 考慮軟件 **** 發布頻率
比如把 20% 經常變動的部分進行抽離,80% 不經常變動的單獨部署和管理。說白了就是按照 8 / 2 原則進行拆分。這個拆分的好處很明顯,可以盡可能的減少發布產生的后遺癥,比如用戶體驗、服務相互干擾等。
但是這里有一個問題,假如 20% 的服務分屬于不同的業務層面,那該怎么辦?所以這里的拆分應該有個優先級,在拆分相互沖突的時候應該要優先考慮權重比較高的那個。
3. 姿勢三:
資深技術專家李運華在他的架構書中給出的拆分:
3.1 基于業務邏輯
將系統中的業務按照職責范圍進行識別,職責相同的劃分為一個單獨的服務。這種業務優先的方式在前面兩種姿勢當中都出現過,可見是最基本,最重要的劃分方式.
“微服務劃分的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!