微服務下技術實踐思考 -- 業務與應用架構設計

企業級微服務架構設計實踐需要從宏觀到微觀層面的思考,主要分為業務架構、應用架構、技術架構和開發設計方法論。

一、業務架構思考

要建設企業的信息系統首先要明確系統的需求,而要制定系統需求則首先要明確系統對于企業來講要解決哪些問題,哪些參與對象以及如何參與,然后再考慮如何使用信息化手段來優化提升生產力,這就是業務架構需要解決的問題。

1. 業務領域識別

主要明確業務操作的業務主體,業務功能,和業務邊界,這里是對業務功能的理解與設想。業務領域的理解需要使用領域驅動設計的思想做戰略層面的設計,明確各領域的職責,劃分好領域的邊界。

領域的劃分并沒有一個統一的標準,是根據企業的實際情況綜合利弊而得出的,主要的原則是高內聚低耦合,將此業務領域強關聯的業務包括進來,將其它領域的業務剝離出去。對于一些模棱兩可的業務歸屬,需要認真對待,分析業務結果的本質再去判斷如何歸屬。如果出現太多的類似業務存在,需要考慮之前的業務領域的識別是否正確。

業務領域功能設計是一個持續的過程,是應該有一個能力地圖的,是有對此領域所提供的能力有一個長線的規劃。只有這樣才能當某項業務操作流程出現的時候才清楚如何去設計功能歸屬。

2. 業務流程梳理

業務流程形象的表述就是多個業務操作之間業務結果的傳遞。從整個業務系統的宏觀層面上看,業務結果是在各業務領域間傳遞的,業務流程的設計需要保持業務結果的獨立性和復用性,對傳遞方式要求規范性和通用性。從業務領域的微觀層面上看,業務結果是在各業務操作間傳遞的,業務流程的設計需要保持簡便性。

3. 業務模型建設

這部分是業務架構的價值所在,深刻認識業務領域作用,透視眾多業務流程,理清業務操作本質,把握業務發展軌跡,形成業務建設原則,構建業務架構模型。

業務的抽象需要深刻理解業務操作背后的業務邏輯,切勿簡單地去實現現有的需求,充分考慮業務模型的通用性和多變性,去適配未來業務的不斷發展。需求細節的變化是多種多樣的,但為了實現目標的述求基礎上是不變的,應從此出發,站在業務解決問題的角度出發來建立業務模型。

二、應用架構思考

應用架構需要定義整個產品有哪些業務系統,它們是如何集成的,內部是怎么劃分的,它們是怎么聯系起來的。

1.應用劃分

  • 業務需求 :應用的劃分很大程度來源于業務架構的分析,是業務模型的結果顯現。
  • 技術現狀 :考慮到實際技術的支撐情況,需要去平衡性能與穩定性的要求。一些應用服務的特點是業務簡單,響應容忍度低,受眾面廣,穩定性高;一些應用服務的特點是業務復雜,響應容忍度高,受眾面小,有接受一定的故障率。
  • 物理環境 :在一些復雜的網絡環境中,可能會出現一些服務需要和不同網絡環境中的其它服務進行交互的需求,從而導致應用的拆分。
  • 安全要求 :應用服務中所涉及的安全等級有可能不一樣,有一些是對外的服務,有一些是對內的API,它們的安全認證方式也不一樣。
  • 系統迭代 :由于系統的不斷升級可能會出現不兼容的情況,由于人員的更迭老版本維護起來越來越吃力,由于技術架構的革新出現不適配的情況

2. 應用交互

主要包括兩種方式,一種是阻斷式的同步方式,強關聯操作;另一種是觸發式的異步方式,是弱關聯操作。

2.1 強關聯交互

用于流程操作中必需的步驟,強一致性,主要使用遠程接口調用。此種方式要求調用與被調用方都必須及時響應,反應迅速,系統耦合度較高,執行流程較復雜。在系統設計中盡量減少此類方式的調用,必須調用時需要關注被調用方的響應時間。

2.2 弱關聯交互

用于流程操作中本應用不關心的其它操作,應用只需要把消息發出,需要使用此消息的應用進行訂閱,主要使用消息中間件。此種方式使用的是異步方式,不要求訂閱方及時響應,系統耦合度低,默認情況下沒有一致性要求,可實現最終一致性。在系統設計中盡量使用此類方式,以便提高整個系統的響應速度和結構的穩定性。

2.3 消息傳輸的形式

行為標識的傳輸 :包括行為對象的類型,行為對象的狀態以及行為對象的標識代碼

 {"code":"XP0000000000000D6001","notice":"PRODUCT","noticeAction":"MODIFY"}

這種方式傳輸的內容簡單,量小,格式統一,訂閱方接收到消息后需要再次通過遠程接口查詢行為對象,此處結果可以制定化,但增加了額外的調用開銷且需要保持雙方通訊穩定性

行為對象的傳輸 :傳遞的內容是整個行為對象,而行為的識別可由消息路由去配置

 {"code":"XP0000000000000D6001","name":"XXX","statue":"MODIFY","id":"XXX" ...}

這種方式傳輸的內容體積較大,格式不一致,訂閱方接收到消息后可直接得到行為對象,無須再次請求接口,但行為對象的格式是固定的,無法制定化,為了適配更多的訂閱方需求往往需要把整個對象傳遞出去,傳輸消耗大,如果消息在消息服務器中堆積較多可能嚴重影響服務器性能。

兩種形式有不一樣的應用場景,可根據需要選擇。一般情況下如果行為對象本身內容較小,為了避免二次請求可以直接傳輸行為對象,如果行為對象內容較大,可只傳輸行為標識。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容