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

當我們準備做前后端分離項目時,我們在考慮什么?

開發(fā) 前端 新聞
幾年前做前后端分離項目的原因,是node剛剛橫空出世,業(yè)界開始考慮如何真正的用js去寫后端服務(wù),于是就借鑒阿里中途島項目去嘗試,主要還是用到了node的密集io場景下的轉(zhuǎn)發(fā)。

幾年前做前后端分離項目的原因,是node剛剛橫空出世,業(yè)界開始考慮如何真正的用js去寫后端服務(wù),于是就借鑒阿里中途島項目去嘗試,主要還是用到了node的密集io場景下的轉(zhuǎn)發(fā)。

[[205939]]

我們的新項目是采用前后端分離的方式進行開發(fā),這一點主要是基于產(chǎn)品特點考慮而來,產(chǎn)品本身會有很強的富客戶端的特點。

我們后端服務(wù)面向的客戶端包含:iOS,Android,iPad,H5,還有一些游戲場景。所以最好的方式就是后端提供通用的restapi進行數(shù)據(jù)傳輸,而前端展示邏輯則交由不同客戶端自己實現(xiàn)。

前后端分離項目主要基于微服務(wù)架構(gòu)開發(fā),既然是微服務(wù),所以分布式系統(tǒng)所應該面對的問題一個也漏不掉。

JAVA微服務(wù)開發(fā)場景下,SpringBoot可謂神器,我們基于SpringBoot開發(fā)了一個可以快速開發(fā)的腳手架,腳手架本身包含了常用及通用的基本功能,如auth驗證,功能鑒權(quán),Mysql,Mq,Redis及通用配置的依賴,這樣開發(fā)工程師在需要開發(fā)新功能時,直接從對應的代碼庫拉下來,編譯之后便可跑起來一個hello world的restapi項目。剩下的工作就是圍繞業(yè)務(wù)邏輯去寫repository,service,controller代碼了。

通信

服務(wù)之間的通信主要可以通過HTTP,RPC方式,眾所周知RPC調(diào)用的效率要高HTTP好幾個等級,所以推薦使用RPC,但是綜合考慮系統(tǒng)性能及可用性,快速開發(fā)等因素,我們也大量使用HTTP進行服務(wù)調(diào)用,同時我們也通過Golang對一些核心api,比如支付,交易類接口進行了重寫,所以需要在系統(tǒng)效率及開發(fā)效率之間做好平衡。

接口規(guī)范

雖然是前后端分離項目,大部分是通過restapi方式給客戶端暴露數(shù)據(jù),但是也不可避免在系統(tǒng)中會存在自己的view頁面,所以在api及controller命名上會建立:AuthApi,AuthController,約定大于配置,可以幫助我們后端對不同的請求做隔離和控制。

任務(wù)類系統(tǒng)

項目中不可避免存在大量的任務(wù)程序,主要需要做好數(shù)據(jù)備份,考慮分布式場景下的任務(wù)調(diào)度,資源分配問題,主要根據(jù)場景不同進行開發(fā)。
我們采用Zk+定時任務(wù)自研的調(diào)度系統(tǒng),也可以采用開源的Elastic-Job方案。

依賴梳理

這個是一個項目開發(fā)過程中最重要的一點,梳理好系統(tǒng)上下游所依賴的服務(wù),同時梳理好服務(wù)之間的等級關(guān)系。

依賴關(guān)系主要分為兩部分:依賴別人,被別人依賴;

依賴別人的服務(wù),包含其他系統(tǒng)API及底層的數(shù)據(jù)庫,Redis,MQ等服務(wù),需要做好對方服務(wù)不可用的準備,隨時做好降級,限流及開關(guān)功能,最好做成可配置,自動化。
被別人依賴的服務(wù)做成高可用,冪等性,響應數(shù)據(jù)的可讀性好等特點。

同時對服務(wù)依賴性梳理,哪些系統(tǒng)屬于強依賴,哪些屬于若依賴。

不同依賴的標準做好開關(guān),降級,重試等功能,強依賴比如DB掛了,可以寫日志,寫到MQ。弱依賴可以做成柔性降級,比如寫日志到ES中,ES不可用,可以直接降級即可。

對于黃金等級服務(wù),則一定保證服務(wù)高可用,可以做災備,比如依賴集群,多個機房,也就是這個服務(wù)是不可降級的,必須準備多套方案保證服務(wù)可用。

關(guān)于依賴降級可以使用Hystrix做。

用戶友好性

做好最壞的打算,如果后端服務(wù)全部不可用,前端轉(zhuǎn)發(fā)問題等,一定不要給用戶一個錯誤頁面,一定建立多級緩存,有數(shù)據(jù)托底,無論如何保證頁面上有內(nèi)容的。

總結(jié)

綜上所述,做好工具,梳理好服務(wù)依賴,對服務(wù)做等級劃分,弱依賴可以通過降級,限流方式處理。強依賴則必須通過多種災備手段保證高可用,不要給用戶感到恐慌的頁面,要有數(shù)據(jù)托底。

責任編輯:張燕妮 來源: 博客園
相關(guān)推薦

2016-08-22 13:31:05

前端架構(gòu)前后端分離

2022-03-11 21:28:31

部署開發(fā)服務(wù)器

2020-11-16 15:47:05

SaaS軟件轉(zhuǎn)型

2022-11-11 09:28:57

軟件設(shè)計DDD

2024-07-26 08:35:29

2014-06-25 09:11:48

技術(shù)

2018-08-23 08:34:21

區(qū)塊鏈分布式賬本比特幣

2017-03-07 15:43:28

編程語言函數(shù)數(shù)據(jù)結(jié)構(gòu)

2016-08-12 10:11:22

2023-08-28 10:33:09

敏捷Scrum理念

2021-11-18 21:09:50

流批場景引擎

2022-07-05 09:31:46

基礎(chǔ)設(shè)施容器Docker

2019-12-24 11:19:44

容器DockerLinux

2019-04-04 12:59:03

微服務(wù)企業(yè)數(shù)字化

2024-03-28 14:16:43

容災云計算

2017-04-05 17:59:29

思科CTO下午茶

2016-11-22 23:44:56

2019-04-11 19:11:27

root手機安卓

2019-02-19 10:22:07

5G5G手機5G技術(shù)

2019-06-12 19:00:14

前后端分離AppJava
點贊
收藏

51CTO技術(shù)棧公眾號