自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微服務后如何做一次系統(tǒng)梳理

開發(fā) 開發(fā)工具
我們在享受著微服務化后帶來的靈活性便利的同時,對我們的運維和服務治理也提出了新的挑戰(zhàn)。從早先單體應用中的代碼依賴,變成了通信依賴。我們就不得不考慮以下問題,比如網絡延遲、分布式事務、異步消息等等。

微服務的主要目的是將原本獨立的系統(tǒng)拆分成多個小的,有獨自進程運行的,同時這些小的服務單元之間通過RPC或者HTTP協(xié)議來相互通訊協(xié)作。每個獨立的服務單元內部都有自己的數據存儲、業(yè)務邏輯開發(fā)和自己的運維部署機制。我們在享受著微服務化后帶來的靈活性便利的同時,對我們的運維和服務治理也提出了新的挑戰(zhàn)。從早先單體應用中的代碼依賴,變成了通信依賴。我們就不得不考慮以下問題,比如網絡延遲、分布式事務、異步消息等等。

一、系統(tǒng)分類與演進

1. 系統(tǒng)分類

我們的系統(tǒng)如果按照功能劃分的話,大概有如下三類系統(tǒng)。

第一類是接口服務系統(tǒng),這類系統(tǒng)是提供外部接口比如JSF(京東自研RPC框架)、HTTP接口、hession接口等,這些接口有讀,有寫,尤其是寫接口,要考慮好寫的冪等性操作,讀天然是冪等的,做好防刷即可。

第二類是網頁類系統(tǒng),用戶直接使用網頁,那么網頁上的數據區(qū)域來源,就要分清楚,一張網頁上面的數據從好多個源頭過來,每個源頭下面都有多個系統(tǒng)來支撐,如果一份數據來自多個渠道,需不需合并,都是要考慮的。

第三類是任務類系統(tǒng),比如我們常見的統(tǒng)計、數據同步等功能的系統(tǒng)。這類系統(tǒng)要考慮任務是熱備還是冷備,多數都是熱備,此種情況下就需要考慮好分布式是任務調度的問題,資源分配,計算的準確性等。

每種系統(tǒng)對應的梳理方式又是不同的。

2. 系統(tǒng)演進

系統(tǒng)演進

 

系統(tǒng)架構變化也是與時俱進的,早期的單體系統(tǒng)跟現在大家踐行的微服務化系統(tǒng),在系統(tǒng)梳理上以及治理上也是完全不同。上圖是一個系統(tǒng)架構的演進(圖參照:《分布式服務框架》1.5章節(jié))

二、梳理目的要搞清楚

每一年618和雙11之前,備戰(zhàn)開始,我們都要對所有的系統(tǒng)做一次梳理。那么每一次梳理的目的,就是要找出系統(tǒng)薄弱點?,F在系統(tǒng)多了,系統(tǒng)里面的業(yè)務也變得復雜了。不過沒有關系,還是那句老話,打蛇打七寸,利用二八原理。集中精力到最重要的環(huán)節(jié)。另外80%不是說就不管了,這里面的業(yè)務可以走限流或者降級處理,當然也是要梳理的。只不過要有輕重之分。

三、如何做

我們要從大的方面梳理出一個系統(tǒng)包含哪些功能,這些功能里面哪些是核心功能也叫做黃金功能。同時從小的方面,對已經梳理出的核心功能,我要再梳理出這些功能對應的流程上包含的各個節(jié)點。每個節(jié)點要找出強依賴和弱依賴。強依賴,是說少了這個依賴功能不能完成,那么就要準備容災方案,也就是比如依賴的DB掛了,那么我們可以用開關切到MQ里面。弱依賴,則是不影響功能使用的依賴,比如插入ES記錄日志,那么ES掛掉,我們直接降級就好。

1. 接口服務類系統(tǒng)

我們要梳理出提供的所有服務接口,找出其中的黃金接口,比如接口1是黃金接口,那么我們就要確保這個接口一定是可用的,如何保證,就是災備。依賴資源比如redis集群,放兩個機房,一個機房兩套??傊@個接口是不可降級的,在不能降級的情況下,就要準備多套方案來確保接口1必須提供服務。

2. 網頁類系統(tǒng)

網頁類系統(tǒng)

網頁類系統(tǒng),比如首頁,類目、展示區(qū)、導航欄,廣告位,這些都不能掛,首頁是一個網站的臉,企業(yè)的臉,一定不能丟臉。每個功能區(qū)域對應的信息都要有多級緩存,有托底數據,無論如何都要保證頁面上是有內容的。

3. 任務類系統(tǒng)

任務類系統(tǒng)

對于任務類系統(tǒng),一樣,要有分布式worker,切不可以單點。解決方案可以利用zookeeper+定時任務,自己實現,也可以采用開源的方案比如Elastic-Job,

上面的三類系統(tǒng),在我們現有的結構中均都已微服務化,我們開篇也突出了微服務治理的特點,網絡延遲、分布式事務、異步消息。因此我們針對微服務的梳理也是從這幾個方面入手。關鍵點,就是找出通訊依賴,確定是強依賴,還是弱依賴。

4. 核心功能的核心流程梳理

梳理出核心功能以后,我們就要開始梳理核心流程,流程的梳理要找出關鍵節(jié)點,比如下面這張圖,只是作為舉例使用,一些類名和和字段都用XX代替。關鍵節(jié)點,就是我們重點對待的,強依賴哪些資源,弱依賴哪些資源。使用不同顏色標注,比如深黃色表示強依賴,淺綠色表示弱依賴。

核心功能的核心流程梳理

四、總結

上面描述的過程中,列舉了系統(tǒng)的分類,系統(tǒng)的演進,流程的梳理。我們的最終目的就是要找出黃金功能,找出黃金流程,流程里面的強依賴和弱依賴。強依賴不可降級必須要有災備方案。做到以上幾點,確保梳理沒有遺漏,無論系統(tǒng)如何演進與變化,我們的服務治理,618和雙11的備戰(zhàn)都能很好的完成!

作者:王新棟,目前就職于京東,一直從事京麥平臺的架構設計與開發(fā)工作,熟悉各種開源軟件架構。在web開發(fā),架構優(yōu)化上有較豐富實戰(zhàn)經歷。有多年在NIO領域的設計、開發(fā)經驗,對HTTP、TCP長連接技術有深入研究與領悟,目前主要致力于移動與PC平臺網關技術的優(yōu)化與實現。

【本文是51CTO專欄作者張開濤的原創(chuàng)文章,作者微信公眾號:開濤的博客( kaitao-1234567)】

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

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-04-18 10:55:00

故障演練流量

2018-07-03 13:56:37

微服務RPCHTTP

2023-10-28 09:08:19

微服務saas私有化

2020-07-22 07:00:00

微服務架構

2020-03-19 15:32:47

手機消毒病毒

2019-11-27 18:33:32

Docker架構數據

2021-08-31 10:02:20

架構運維技術

2013-09-13 09:27:42

服務器LinuxApache

2017-07-07 11:28:24

大數據大數據技術

2021-09-26 13:21:20

Python微服務JAVA

2023-12-07 12:48:09

微服務容量規(guī)劃

2021-03-22 16:50:13

數據中心

2024-05-28 09:05:31

2025-03-10 00:35:00

AndroidIPC管道

2017-05-09 09:26:48

微服務消息推送

2024-08-19 09:40:00

人工智能診斷

2022-10-25 08:56:16

2024-02-28 08:00:54

Web嵌入式嵌入式系統(tǒng)

2017-06-12 11:09:56

計數架構數據庫

2020-08-19 11:02:39

系統(tǒng)ssh登錄
點贊
收藏

51CTO技術棧公眾號