婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動)

從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動)

熱門標(biāo)簽:宿遷怎么辦理400電話 400電話辦理費(fèi)用低 谷歌地圖標(biāo)注日期 聯(lián)通外呼系統(tǒng)電腦app軟件 鶴壁高頻外呼系統(tǒng)多少錢一個月 外呼系統(tǒng)怎么群發(fā)短信 地圖標(biāo)注項目幾個月 蘇州呼叫中心外呼系統(tǒng)哪家強(qiáng) 400電話申請到底哪家好

產(chǎn)品是一款服務(wù)于人力資源的SaaS在線服務(wù),面向HR有Web Android/iOS 小程序多個客戶端

后端采用RESTful風(fēng)格API來提供服務(wù)。主要使用Python語言,方便快速迭代。

架構(gòu)的演進(jìn)經(jīng)歷了4個大的階段:

一、MVC

項目剛開始的時候,后端同事不超過5個,這個階段主要的工作是實現(xiàn)產(chǎn)品的原型,沒有太多的考慮架構(gòu)

使用Django來快速實現(xiàn)功能,DB的表結(jié)構(gòu)設(shè)計好之后,抽象出功能View

由于產(chǎn)品設(shè)計也很不完善,后端需要很多的預(yù)留設(shè)計,避免產(chǎn)品邏輯的變更帶來整個表結(jié)構(gòu)的變動

在這個階段代碼上最重要的是確定適合團(tuán)隊的代碼規(guī)范,代碼檢查規(guī)則。

整體上架構(gòu)如上圖

  • Nginx負(fù)責(zé)負(fù)載均衡,分發(fā)流量到多個Django服務(wù)
  • Django處理邏輯
  • 異步任務(wù)就交給Celery
  • 數(shù)據(jù)量比較大的地方使用Redis做緩存
  • 同時還有實時消息通知的需要使用了Nginx Push Module

問題與優(yōu)化方式:

  • Django并發(fā)性能差
  • 使用uWSGI Master+Worker 配合 gevent 攜程支持高并發(fā)Redis連接數(shù)過多
  • 使用redis-py自帶的連接池來實現(xiàn)連接復(fù)用MySQL連接數(shù)過多
  • 使用djorm-ext-pool(https://github.com/djangonauts/djorm-ext-pool)連接池復(fù)用連接Celery配置gevent支持并發(fā)任務(wù)

隨著開發(fā)的功能越來越多,Django下的app也越來越多,這就帶了發(fā)布上的不方便,每次發(fā)布版本都需要重啟所有的Django服務(wù),如果發(fā)布遇到問題,只能加班解決了。而且單個Django工程下的代碼量也越來越多,不好維護(hù)。

二、服務(wù)拆分

隨著后端團(tuán)隊的壯大,分給每個同事的需求也越來越細(xì)

如果繼續(xù)在一個工程里面開發(fā)所有的代碼,維護(hù)起來的代價太高

而我們的上一個架構(gòu)中在Django里面已經(jīng)按模塊劃分了一個個app

app內(nèi)高類聚,app之間低耦合,這就為服務(wù)的拆分帶來了便利。

拆分的過程沒有遇到太大的問題,初期的拆分只是代碼的分離

把公用的代碼抽離出來實現(xiàn)一個公用的Python庫,數(shù)據(jù)庫,Redis還是共用,隨著負(fù)載的增加,數(shù)據(jù)庫也做了多實例。

如上圖,服務(wù)之間盡量避免相互調(diào)用,需要交互的地方采用http請求的方式,內(nèi)網(wǎng)的調(diào)用使用hosts指向內(nèi)網(wǎng)地址。

問題與優(yōu)化方式:

  • Nginx Push Module由于長時間沒有維護(hù),長連接最大數(shù)量不夠,
  • 使用Tornado + ZeroMQ實現(xiàn)了tormq(https://github.com/zhu327/tormq)服務(wù)來支撐消息通知
  • 服務(wù)之間的調(diào)用采用http的方式,并且要求有依賴的服務(wù)主機(jī)配置hosts指向被調(diào)用的地址,這樣帶來的維護(hù)上的不方便。
  • 以及在調(diào)用鏈的過程中沒有重試,錯誤處理,限流等等的策略,導(dǎo)致服務(wù)可用性差。
  • 隨著業(yè)務(wù)拆分,繼續(xù)使用Nginx維護(hù)配置非常麻煩,經(jīng)常因為修改Nginx的配置引發(fā)調(diào)用錯誤。
  • 每一個服務(wù)都有一個完整的認(rèn)證過程,認(rèn)證又依賴于用戶中心的數(shù)據(jù)庫,修改認(rèn)證時需要重新發(fā)布多個服務(wù)。

三、微服務(wù)架構(gòu)

  • 首先是在接入層引入了基于OpenResty的Kong API Gateway,定制實現(xiàn)了認(rèn)證,限流等插件。
  • 在接入層承接并剝離了應(yīng)用層公共的認(rèn)證,限流等功能。
  • 在發(fā)布新的服務(wù)時,發(fā)布腳本中調(diào)用Kong admin api注冊服務(wù)地址到Kong,并加載api需要使用插件。

為了解決相互調(diào)用的問題,維護(hù)了一個基于gevent+msgpack的RPC服務(wù)框架doge,借助于etcd做服務(wù)治理,并在rpc客戶端實現(xiàn)了限流,高可用,負(fù)載均衡這些功能。

  • 在這個階段最難的技術(shù)選型,開源的API網(wǎng)關(guān)大多用Golang與OpenResty(lua)實現(xiàn),為了應(yīng)對我們業(yè)務(wù)的需要還要做定制。
  • 前期花了1個月時間學(xué)習(xí)OpenResty與Golang,并使用OpenResty實現(xiàn)了一個短網(wǎng)址服務(wù)shorturl用在業(yè)務(wù)中。
  • 最終選擇Kong是基于Lua發(fā)布的便利性,Kong的開箱即用以及插件開發(fā)比較容易。
  • 性能的考量倒不是最重要的,為了支撐更多的并發(fā),還使用了云平臺提供的LB服務(wù)分發(fā)流量到2臺Kong服務(wù)器組成的集群。
  • 集群之間自動同步配置。

餓了么維護(hù)一個純Python實現(xiàn)的thrift協(xié)議框架thriftpy,并提供很多配套的工具, 如果團(tuán)隊足夠大,這一套RPC方案其實是合適的,但是我們的團(tuán)隊人手不足,水平參差不齊,很難推廣這一整套學(xué)習(xí)成本高昂的方案。

最終我們開發(fā)了類Duboo的RPC框架doge,代碼主要參考了weibo開源的motan。

四、領(lǐng)域驅(qū)動設(shè)計

  • 在這一架構(gòu)中我們嘗試從應(yīng)用服務(wù)中抽離出數(shù)據(jù)服務(wù)層
  • 每一個數(shù)據(jù)服務(wù)包含一個或多個界限上下文,界限上下文類只有一個聚合根來暴露出RPC調(diào)用的方法。
  • 數(shù)據(jù)服務(wù)不依賴于應(yīng)用服務(wù),應(yīng)用服務(wù)可以依賴多個數(shù)據(jù)服務(wù)。
  • 有了數(shù)據(jù)服務(wù)層,應(yīng)用就解耦了相互之間的依賴,高層服務(wù)只依賴于底層服務(wù)。

在我離職時領(lǐng)域驅(qū)動設(shè)計還在學(xué)習(xí)設(shè)計階段,還沒有落地,但是我相信前公司的后端架構(gòu)一定會往這個方向繼續(xù)演進(jìn)。

Service Mesh這種新一代的微服務(wù)架構(gòu)正在成為主流,雖然現(xiàn)在的工作與微服務(wù)無關(guān)了,但是也還會繼續(xù)關(guān)注學(xué)習(xí)。

架構(gòu)的設(shè)計,技術(shù)的選型,不能完全按照流行的技術(shù)走,最終還是服務(wù)于產(chǎn)品,服務(wù)于客戶的需求。設(shè)計過程中由于團(tuán)隊,人員的結(jié)構(gòu)問題,有很多的妥協(xié)之處,如何在妥協(xié)中找到最優(yōu)解才是最大的挑戰(zhàn),更多相關(guān)問題的討論,請大家持續(xù)關(guān)注腳本之家!

您可能感興趣的文章:
  • 解讀Serverless架構(gòu)的前世今生
  • SSM框架前后端信息交互實現(xiàn)流程詳解
  • 適合后臺管理系統(tǒng)開發(fā)的12個前端框架(小結(jié))
  • 詳解Java 微服務(wù)架構(gòu)
  • 淺談SpringCloud實現(xiàn)簡單的微服務(wù)架構(gòu)

標(biāo)簽:雙鴨山 鄂爾多斯 莆田 錫林郭勒盟 丹東 哈爾濱 遵義 襄陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動)》,本文關(guān)鍵詞  從,到,搭建,后端,架構(gòu),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動)》相關(guān)的同類信息!
  • 本頁收集關(guān)于從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人av电影免费在线播放| 亚洲狼人国产精品| 日韩欧美一区在线| 欧美日韩国产天堂| 色噜噜狠狠成人中文综合| 色哟哟一区二区三区| 91在线观看美女| 在线欧美日韩精品| 91麻豆精品国产自产在线观看一区| 在线观看国产91| 欧美日韩在线播放三区四区| 欧美高清dvd| 日韩免费福利电影在线观看| 亚洲精品一区二区精华| 国产午夜亚洲精品午夜鲁丝片| 久久久精品影视| 国产精品福利一区二区三区| 亚洲午夜久久久久久久久电影网 | 97精品久久久久中文字幕 | 性做久久久久久免费观看| 亚洲国产一区二区三区| 蜜桃av一区二区| 丁香婷婷综合五月| 欧美亚一区二区| 日韩女同互慰一区二区| 欧美激情资源网| 亚洲成人在线观看视频| 激情综合网最新| 色悠悠亚洲一区二区| 欧美美女一区二区在线观看| 精品国产乱码久久久久久影片| 中文字幕欧美一区| 强制捆绑调教一区二区| 99re在线精品| 精品欧美久久久| 亚洲免费观看高清| 久草热8精品视频在线观看| 色悠悠久久综合| 国产精品婷婷午夜在线观看| 亚洲五码中文字幕| 成人午夜在线免费| 日韩一区二区三区视频在线| 中文字幕在线一区| 久久成人久久鬼色| 欧美三级韩国三级日本三斤| 日本一区二区三区久久久久久久久不 | 免费在线观看视频一区| 不卡视频在线看| 精品日产卡一卡二卡麻豆| 亚洲一线二线三线视频| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产美| 亚洲精品视频免费观看| 国产凹凸在线观看一区二区| 日韩欧美精品在线视频| 一区二区三区91| 成人国产在线观看| 久久婷婷国产综合国色天香| 天天影视色香欲综合网老头| 色婷婷国产精品综合在线观看| 中文字幕成人网| 国产露脸91国语对白| 精品福利在线导航| 久久99精品久久久| 日韩视频中午一区| 美腿丝袜亚洲三区| 日韩欧美一级片| 国内一区二区在线| 久久久久久夜精品精品免费| 精彩视频一区二区三区| 精品国产一区二区三区不卡| 蜜桃av一区二区在线观看 | 国产一区二区在线电影| 日韩欧美综合一区| 精品在线播放免费| 久久精品视频一区二区| 成人激情小说网站| 亚洲四区在线观看| 欧洲一区二区三区免费视频| 伊人色综合久久天天人手人婷| 欧美性色欧美a在线播放| 一区二区三区自拍| 欧美日韩国产综合一区二区 | 国产麻豆视频精品| 99久久精品国产网站| 成人欧美一区二区三区| 亚洲成av人影院| 欧洲一区在线电影| 欧美aaaaa成人免费观看视频| 91精品国产色综合久久不卡蜜臀| 日本不卡一区二区三区高清视频| 国产清纯白嫩初高生在线观看91 | 精品国产乱码久久久久久久| 欧美日韩一卡二卡三卡| a级精品国产片在线观看| 青青青伊人色综合久久| 午夜精品视频一区| 亚洲国产精品一区二区尤物区| 国产精品护士白丝一区av| 久久久91精品国产一区二区三区| 欧美一级日韩不卡播放免费| 欧美午夜宅男影院| 欧美在线不卡视频| 在线观看视频一区| 欧美日精品一区视频| 欧美日产国产精品| 91麻豆精品国产91久久久久久| 欧美又粗又大又爽| 欧美色涩在线第一页| 在线亚洲高清视频| 欧美伊人精品成人久久综合97| 91亚洲午夜精品久久久久久| 色综合久久综合| 91福利视频在线| 欧美日韩一区小说| 欧美一区二区三区免费在线看| 91精品在线一区二区| 欧美一区二区在线不卡| 欧美精品一区二区三区久久久| 久久一日本道色综合| 久久久精品欧美丰满| 国产精品另类一区| 国产精品成人午夜| 亚洲在线视频一区| 婷婷开心激情综合| 国产精品白丝jk黑袜喷水| 东方欧美亚洲色图在线| 日本韩国欧美三级| 欧美日本乱大交xxxxx| 欧美大片在线观看| 国产精品精品国产色婷婷| 一卡二卡三卡日韩欧美| 肉色丝袜一区二区| 国产成人自拍网| 色拍拍在线精品视频8848| 911精品国产一区二区在线| 日韩精品一区二区三区视频在线观看| 久久天天做天天爱综合色| 亚洲日本免费电影| 日韩高清不卡一区二区| 成人免费视频免费观看| 在线观看网站黄不卡| ww亚洲ww在线观看国产| 亚洲美女免费在线| 美女视频一区二区| 99r精品视频| 日韩美女一区二区三区四区| 国产精品免费视频网站| 亚洲午夜精品17c| 国产高清不卡二三区| 在线一区二区三区做爰视频网站| 91精品国产色综合久久| 中文字幕亚洲一区二区av在线 | a亚洲天堂av| 精品日韩在线观看| 亚洲国产精品视频| 成人一级片网址| 欧美成人猛片aaaaaaa| 亚洲色欲色欲www| 国产真实乱偷精品视频免| 在线观看亚洲专区| 中文字幕成人av| 久草精品在线观看| 欧美精品视频www在线观看 | 国产一区视频网站| 欧美日韩国产一区二区三区地区| 中文字幕+乱码+中文字幕一区| 日日摸夜夜添夜夜添国产精品| 成人黄色国产精品网站大全在线免费观看 | 一区二区三区波多野结衣在线观看| 极品少妇xxxx精品少妇| 欧美日韩在线三区| 自拍偷拍欧美激情| 高清不卡一区二区在线| 久久综合色一综合色88| 日韩制服丝袜先锋影音| 日本精品免费观看高清观看| 国产精品久久久久婷婷二区次| 蜜桃av噜噜一区二区三区小说| 欧美日本在线观看| 五月天欧美精品| 在线观看一区二区视频| 亚洲欧美乱综合| 97成人超碰视| 亚洲天天做日日做天天谢日日欢| 粉嫩av一区二区三区粉嫩| 久久亚洲综合av| 国产一区999| 久久精品人人做人人爽97| 国产在线播精品第三| 欧美xingq一区二区| 日本不卡的三区四区五区| 91精选在线观看| 九九精品一区二区| 久久综合99re88久久爱| 国产精品一区二区你懂的| 久久久噜噜噜久久中文字幕色伊伊 | 日本国产一区二区| 亚洲激情成人在线| 欧美日韩久久一区|