亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

兩年PHPer聊下架構

levinit / 2513人閱讀

摘要:前言年很有幸參與了公司內部系統(tǒng)架構的升級,我們把公司的業(yè)務進行了四大板塊的拆分,分別是應用服務內容服務電商服務支付服務。

前言

2016年很有幸參與了公司內部系統(tǒng)架構3.0的升級,我們把公司的業(yè)務進行了四大板塊的拆分,分別是應用服務內容服務、電商服務、支付服務。其他和業(yè)務無關的功能拆分到了基礎服務,為全公司的業(yè)務提供基礎服務能力,例如短信、app推送、微信模板消息、圖片上傳等服務能力。我們還建立我們自己的網(wǎng)關服務,對外提供了統(tǒng)一的服務訪問地址。自此之后我對架構的發(fā)展和演變也產(chǎn)生了濃厚的興趣和想法,但是目前接觸的有限,與大公司的業(yè)務復雜度比還是有很大的差距,一年過去了但是還是想把自己經(jīng)歷的做個總結和自己的想法表達出來,同時也希望大牛們可以指導一番。

備注:“系統(tǒng)架構”是一個很大的范疇,我這里只是把我所經(jīng)歷的小型創(chuàng)業(yè)公司的一次架構升級做個分享。
實際架構

直接上最終的架構圖,如下:

網(wǎng)關: 企業(yè)服務總線,對外暴露統(tǒng)一的資源域,把實際業(yè)務中接口中都涉及簽名鑒權等一系列鑒權邏輯抽到網(wǎng)關,其次為未來開放第三方服務準備。

協(xié)議層: 組裝各個服務的結果,把http協(xié)議的請求轉換成rpc請求(這里我們使用的是phprpc)。

業(yè)務服務: 實際的業(yè)務方,各種商業(yè)邏輯,如圖所示。

基礎服務: 基礎服務能力,和實際商業(yè)邏輯無關。

理論架構

上面的架構有什么問題,協(xié)議層產(chǎn)生了重度的耦合,協(xié)議層耦合各個業(yè)務方的邏輯。雖然系統(tǒng)拆分的原則是盡可能的不產(chǎn)生依賴,但是有些還是不可避免的。

三方面:

①透傳:明明協(xié)議層不需對邏輯做特殊的處理,協(xié)議層卻要實現(xiàn)一遍代碼,增加了工作量

②組裝:協(xié)議層調用各個服務的組裝數(shù)據(jù)的時候,其實還是下意識涉及了部分業(yè)務邏輯

③html5應用直接調用了協(xié)議層,沒有正真的實現(xiàn)企業(yè)總線

其次我認為最恐怖的是負責協(xié)議層開發(fā)的同學被坑了,寫透傳的代碼沒技術含量而且是重復性的工作,涉及數(shù)據(jù)組裝的,還得需要簡單的了解各個服務邏輯。從而這個協(xié)議層就成了耦合的重災區(qū),所以我根據(jù)自己的想法改進了這個架構設計,架構圖如下:

改進一:html5應用也統(tǒng)一走網(wǎng)關,html5應用的請求執(zhí)行對應的網(wǎng)關策略

改進二:下移協(xié)議層到網(wǎng)關,網(wǎng)關直接進行協(xié)議轉化

改進三:業(yè)務服務直接調用所依賴的服務,這樣我們的服務就可以業(yè)務直接通過網(wǎng)關暴露出去

更進一步的架構

然而上面的架構有什么問題?業(yè)務服務內部互相依賴,一旦未來服務拆分的粒度越來越細,以及業(yè)務的新增,這些依賴就成了一個網(wǎng)狀結構,慢慢變的不可維護。接著我改進了這個架構圖,再進一步,應該是這樣的:

我把之前服務之間直接的互相依賴轉變成了統(tǒng)一對中間件的依賴,這樣未來再多的服務整個系統(tǒng)架構都是清晰的。

中間件具備的能力:

同步調用:直接通過對中間件的調用完成對服務的直接調用

異步調用:通過對中間件的調用完成對服務的異步調用

然而,這里有個最大的問題就是所有壓力都集中到了中間件,保證中間件的高可用又成為了一個很大的問題。

結語

除了上述的實際架構是真實的生產(chǎn)環(huán)境架構,其他的為我個人目前的想法,目前個人未真實在生產(chǎn)環(huán)境實現(xiàn)。最后說說實際踩的坑:

服務超時:網(wǎng)關設置了熔斷時間,導致服務剛提交事務卻被終端請求導致的數(shù)據(jù)一致性問題。再例如,剛發(fā)送短信成功,卻被中斷請求,客戶端返回失敗,實際卻接收到短信。

分布式事務:跨服務調用使得事務的提交不像以前那么簡單

如果開發(fā)人少,導致一個人維護多個項目

增加了部署難度

追蹤問題難度加深(我們引入了requestId追蹤整個鏈路的調用過程)

Easy PHP:一個極速輕量級的PHP全??蚣?/pre>

掃面下方二維碼關注我的技術公眾號,及時為大家推送我的原創(chuàng)技術分享

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/25595.html

相關文章

  • 三年Java后端面試經(jīng)歷

    摘要:前言三年后端開發(fā)經(jīng)驗,面的目標崗位是的高級后端開發(fā)。面試結束,應該沒有后續(xù)。 前言 三年Java后端開發(fā)經(jīng)驗,面的目標崗位是20k-35k的高級后端Java開發(fā)。 第一場,基本裸面,關于曾經(jīng)的項目部門答的不好,所以還是得好好準備。 某C輪在線旅游公司 筆試 先做半個小時的筆試題,一共六個題目,兩道go語言的基礎題,一道斐波那契相關,一道數(shù)據(jù)庫行列轉置,一道實現(xiàn)一個棧,還有一道是百萬計...

    darry 評論0 收藏0
  • 我眼中的PHP

    摘要:趁著吃下午茶,我也來簡單談談對甚至的一些看法。然而放眼現(xiàn)在,其實這些東西,感覺像是入門級別的要求了。說說我自己吧,不可否認,在工作中,我確實是個打雜,說好的架構呢,說還的管理呢,說好的技術支持呢,,到頭來,還是東忙西忙,一無所事。 趁著吃下午茶,我也來簡單談談對 PHP 甚至 PHPer 的一些看法。 況且最好的語言要是沒有優(yōu)秀的人,那幾本就是扯淡,沒錯,就是你們在大大小小的群經(jīng)??吹?..

    Lin_R 評論0 收藏0
  • PHPer這樣寫代碼也許更優(yōu)雅

    摘要:前言轉眼間成為一名已經(jīng)快整整兩年了,在這期間也對如何寫出可讀性高,便于擴展的代碼有了一些自己的想法。所以,我們在寫上游代碼時異常直接拋出即可。通常這樣可以很大程度的提高效率和代碼復用。 前言 轉眼間成為一名PHPer已經(jīng)快整整兩年了,在這期間也對如何寫出可讀性高,便于擴展的代碼有了一些自己的想法。 使用引用 場景一:遍歷一個數(shù)組獲取新的數(shù)據(jù)結構 也許你會這樣寫: // 申明一個新的數(shù)組...

    kidsamong 評論0 收藏0
  • 兩年多我寫PHP業(yè)務代碼的方式是如何進化的

    摘要:曾今誰都有過迷茫期,下面是我開始開發(fā)中,不斷改變的代碼組織方式。 曾今 誰都有過迷茫期,下面是我開始PHP開發(fā)中,不斷改變的代碼組織方式。 初期:所有代碼一股腦控制器controller 曾今只是簡單的理解MVC 中期:業(yè)務代碼抽象一部分到模型層model 開始覺得model層是否該做點什么了 后期:業(yè)務代碼控制器,模型層只寫db的curd方法 復雜的業(yè)務代碼使contro...

    qqlcbb 評論0 收藏0
  • 轉:從框架看PHP的五種境界及各自的薪資待遇

    摘要:語言行為及特征狀態(tài)看不懂任何英語技術,英語文檔,凡事沒有培訓部在搞的,只有英文文檔的東西國內一律沒大公司在用,都非主流,排斥英文文檔和新技術,以及各種超出他學習能力范圍的技術。 在撰寫此文前首先必須申明的是本人不鄙視任何一種框架,也無意于挑起PHP框架間的戰(zhàn)爭,更沒有貶低某個框架使用者的用意,本文純粹個人的看法。你可以認為我無知也好,或者裝逼也好,請不要試著在任何情況下,隨便發(fā)起言語的...

    Godtoy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<