傳統(tǒng)企業(yè)就應該這樣進行微服務化

  很多傳統(tǒng)企業(yè)看著互聯(lián)網(wǎng)公司都進行著微服務化躁劣,因此也想享受微服務化帶來的好處便對自己的系統(tǒng)進行改造甲献,但微服務化?多“微”才是最優(yōu)闲延?有哪些拆分的原則端壳?


架構(gòu)原則

使用成熟的技術(shù)告丢,不需要最先進最好的技術(shù),要是自己人能夠掌控的损谦,不然出現(xiàn)莫名的問題芋齿,一兩天都可能解決不了,你就等著被拿來“祭天”吧成翩。

至少有一個冗余的實例,可水平擴展赦役,確保一個實用多個負載麻敌,掛掉一個仍然能夠正常運行,這里就要保證服務應用的無狀態(tài)性掂摔。

確保數(shù)據(jù)中心能在地理上隔離术羔,實現(xiàn)異地多活容災,實現(xiàn)三城兩地式物理布署乙漓,即使一個城市停電仍可提供數(shù)據(jù)的正常訪問级历。

有一套發(fā)布回滾機制,確保發(fā)布異常時能回滾到上一個版本叭披,同時可追蹤到異常寥殖。

在架構(gòu)設計之初就構(gòu)建監(jiān)控平臺,無監(jiān)控無疑相當于系統(tǒng)在裸奔,后面擴容無數(shù)據(jù)支撐嚼贡、BUG查找熏纯,異常追蹤都無從淡起。

不斷小試錯粤策,而不是像傳統(tǒng)項目開發(fā)周期達一年樟澜,在時間就是生命的時代,產(chǎn)品上線黃花菜都涼了叮盘。

任務自動化秩贰,機器能夠做就讓程序自動跑,減少人力運維柔吼。

實現(xiàn)故障隔離毒费,自動保護機制,防止一個服務拖垮整個系統(tǒng)平臺嚷堡,進行健壯性分析蝗罗。

……

  所有的設計都是為了高可用,易擴展蝌戒、高并發(fā)下出現(xiàn)異常更容易恢復串塑,降低異常對業(yè)務的影響,這就是微服務架構(gòu)設計的理念北苟,但不完全桩匪,有些還是依靠架構(gòu)師的經(jīng)驗結(jié)合自己公司的業(yè)務特點來思考,并不是適合所有的公司友鼻,傳統(tǒng)公司進行微服務化的困難很大傻昙,但做得好收益也非常高。

做好業(yè)務的拆彩扔、合

  微服務講究的是小 妆档,一個程序只做好一件事就夠了,因此需要對原有臃腫的系統(tǒng)拆分虫碉,對零散的功能進行合贾惦。

?一個業(yè)務場景一個服務

  如用戶服務、授權(quán)服務敦捧、菜單服務须板、訂單服務……?這樣的粒度好處是更新用戶服務其它的服務可以不用更新。

一個數(shù)據(jù)庫對應一個服務

  數(shù)據(jù)庫操作層封裝成一個服務兢卵,所有對這個數(shù)據(jù)庫的請求都要經(jīng)過這個服務习瑰,而不用知道這個數(shù)據(jù)庫的密碼,而且可以進行流量權(quán)限等進行控制秽荤。

一個接口一個服務

  這種架構(gòu)很極端甜奄,會造成微服務數(shù)量成幾何數(shù)增長柠横,維護難度極大。

  適當?shù)牧6葍?yōu)勢是服務能夠獨離部署贺嫂,擴展方便滓鸠,耦合度較小。

  應用層我們可以結(jié)合上面的方法從下往上分析第喳,對所有服務抽像化后抽出基礎功能封成服務糜俗,這樣公共服務就行成了,而且可以互相引用曲饱。

  這樣就形成了基礎服務悠抹,是一些基礎組件,與具體的業(yè)務無關扩淀。比如:短信服務楔敌、郵件服務。這里的服務最容易摘出來做微服務驻谆,也是我們第一優(yōu)先級分離出來的服務卵凑。

還有些是業(yè)務服務,是一些垂直的業(yè)務系統(tǒng)胜臊,只處理單一的業(yè)務類型如:風控系統(tǒng)勺卢、積分系統(tǒng)、合同系統(tǒng)象对。這類服務職責比較單一黑忱,根據(jù)業(yè)務情況來選擇是否遷移,比如:如果突然有需求對積分系統(tǒng)進行大優(yōu)化勒魔,我們就趁機將積分系統(tǒng)進行改造甫煞,是我們的第二優(yōu)先級分離出來的服務。

前端服務冠绢,一般為服務的接入或者輸出服務抚吠,比如網(wǎng)站的前端服務、app 的服務接口這類弟胀,這是我們第三優(yōu)先級分離出來的服務埃跷。

組合服務,組合服務就是涉及到了具體的業(yè)務邮利,比如網(wǎng)購過程,需要調(diào)用很多垂直的業(yè)務服務垃帅,這類的服務我們一般放到最后再進行微服務化架構(gòu)來改造延届,因為這類服務最為復雜,除非涉及到大的業(yè)務邏輯變更贸诚,我們是不會輕易進行遷移方庭。

獨立數(shù)據(jù)庫

  數(shù)據(jù)層都是獨立的數(shù)據(jù)庫厕吉,即一個數(shù)據(jù)庫對應一個服務,這里需要對數(shù)據(jù)庫層進行縱向切分械念,即原來一個表現(xiàn)在對應多個表分片保存头朱。

給數(shù)據(jù)庫帶來的挑戰(zhàn)

  每個微服務都有自己獨立的數(shù)據(jù)庫,那么后臺管理的聯(lián)合查詢怎么處理?

有如下三種處理方案:

嚴格按照微服務的劃分來做龄减,微服務相互獨立项钮,各微服務數(shù)據(jù)庫也獨立,后臺需要展示數(shù)據(jù)時希停,調(diào)用各微服務的接口來獲取對應的數(shù)據(jù)烁巫,再進行數(shù)據(jù)處理后展示出來,這是標準的用法宠能,也是最麻煩的用法亚隙。

?將業(yè)務相關的表放到一個庫中,將業(yè)務無關的表嚴格按照微服務模式來拆分违崇,這樣既可以使用微服務阿弃,也避免了數(shù)據(jù)庫各種切換導致后臺統(tǒng)計難以實現(xiàn),是一個折中的方案羞延。

數(shù)據(jù)庫嚴格按照微服務的要求來切分渣淳,以滿足業(yè)務高并發(fā)樱拴,實時或者準實時將各微服務數(shù)據(jù)庫數(shù)據(jù)同步到 NoSQL 數(shù)據(jù)庫中速址,在同步的過程中進行數(shù)據(jù)清洗,用來滿足后臺業(yè)務系統(tǒng)的使用竖独,推薦使用 Mongodb赛蔫、Hbase 等砂客。



拆分過后落地架構(gòu)

在確定使用Spring Boot / Cloud 這套技術(shù)棧進行微服務改造之前,請先梳理平臺的服務呵恢,對不同的服務進行分類鞠值,以確認演化的節(jié)奏。

先讓團隊熟悉 Spring Boot 技術(shù)渗钉,并且優(yōu)先在基礎服務上進行技術(shù)改造彤恶,推動改動后的項目投產(chǎn)上線。

當團隊熟悉 Spring Boot 之后鳄橘,再推進使用 Spring Cloud 對原有的項目進行改造声离。

在進行微服務改造過程中,優(yōu)先應用于新業(yè)務系統(tǒng)瘫怜,前期可以只是少量的項目進行了微服務化改造术徊,隨著大家對技術(shù)的熟悉度增加,可以加快加大微服務改造的范圍鲸湃。

傳統(tǒng)項目和微服務項目共存是一個很常見的情況赠涮,除非公司業(yè)務有大的變化子寓,前期不建議直接遷移核心項目,先搭建一個微服務架構(gòu)笋除,然后先接入新業(yè)務斜友,后面再將老項目逐個改造,這里有個問題就是統(tǒng)一配置垃它,統(tǒng)一規(guī)則鲜屏,如日志,接口嗤瞎,文檔墙歪,代碼風格,公共類庫?版本等等提前規(guī)范贝奇。

  以上只是個拆分建議虹菲,傳統(tǒng)項目到微服務轉(zhuǎn)化首先是思想上的轉(zhuǎn)變就是很困難的,然后有些方法也不能套大公司的掉瞳,只能是趨向大原則毕源,根據(jù)自己的業(yè)務量,人力?時間等來改造陕习。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霎褐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子该镣,更是在濱河造成了極大的恐慌冻璃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件损合,死亡現(xiàn)場離奇詭異省艳,居然都是意外死亡,警方通過查閱死者的電腦和手機嫁审,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門跋炕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人律适,你說我怎么就攤上這事辐烂。” “怎么了捂贿?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵纠修,是天一觀的道長。 經(jīng)常有香客問我厂僧,道長分瘾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮德召,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汽纤。我一直安慰自己上岗,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布蕴坪。 她就那樣靜靜地躺著肴掷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪背传。 梳的紋絲不亂的頭發(fā)上呆瞻,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音径玖,去河邊找鬼痴脾。 笑死,一個胖子當著我的面吹牛梳星,可吹牛的內(nèi)容都是我干的赞赖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冤灾,長吁一口氣:“原來是場噩夢啊……” “哼前域!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起韵吨,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤匿垄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后归粉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椿疗,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年盏浇,在試婚紗的時候發(fā)現(xiàn)自己被綠了变丧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绢掰,死狀恐怖痒蓬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滴劲,我是刑警寧澤攻晒,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站班挖,受9級特大地震影響鲁捏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萧芙,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一给梅、第九天 我趴在偏房一處隱蔽的房頂上張望假丧。 院中可真熱鬧,春花似錦动羽、人聲如沸包帚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渴邦。三九已至,卻和暖如春拘哨,著一層夾襖步出監(jiān)牢的瞬間谋梭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工倦青, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓮床,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓姨夹,卻偏偏與公主長得像纤垂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磷账,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容