最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

為什么不同類型的業(yè)務(wù)后臺架構(gòu)模式是通用的

2023-06-12 11:25 作者:gzqhero  | 我要投稿

國內(nèi)的各大互聯(lián)網(wǎng)公司業(yè)務(wù)模式非常豐富,所提供的業(yè)務(wù)服務(wù)也是形態(tài)各異,比如:

  • 騰訊主要提供即時(shí)通信、游戲等服務(wù)

  • 京東、阿里等電商提供商品購買、快遞寄收件、金融投資等服務(wù)

  • 滴滴提供打車服務(wù)

  • 今日頭條、新浪微博提供短視頻、新聞資訊類閱讀服務(wù)

  • 美團(tuán)提供商品購買、外賣訂購服務(wù)

  • 百度提供搜索查詢服務(wù)

雖然上述列舉的公司業(yè)務(wù)類型不同,但對后臺開發(fā)崗位的招聘要求卻很相似。在拉勾網(wǎng)上可以看到,除了要求你掌握某種開發(fā)語言和相關(guān)框架外,還要掌握分布式、多線程、緩存、數(shù)據(jù)庫等。

圖片

那么,產(chǎn)生這個(gè)現(xiàn)象的根本原因是什么呢?

簡單來說,是因?yàn)檫@些業(yè)務(wù)在技術(shù)實(shí)現(xiàn)上存在共性,比如技術(shù)點(diǎn)或者架構(gòu)模式。在本講我將和你一起探尋問題背后的原因,并向你提供一個(gè)分析業(yè)務(wù)架構(gòu)共性的標(biāo)準(zhǔn)。學(xué)完本講, 希望你在面對層出不窮的新業(yè)務(wù)、新模式時(shí),能夠洞穿出背后的架構(gòu)本質(zhì),套用通用架構(gòu)模式,輕松應(yīng)對各項(xiàng)技術(shù)指標(biāo),真正做到大道歸宗。

什么是業(yè)務(wù)后臺系統(tǒng)

在討論一個(gè)議題之前,最重要的是確定它的定義和邊界,這樣才不至于在實(shí)施時(shí)出現(xiàn)偏差,導(dǎo)致事倍功半。因此,在開始本講前,咱們先聊聊業(yè)務(wù)后臺系統(tǒng)的定義。

乍一聽“ 業(yè)務(wù)后臺系統(tǒng)”這個(gè)稱呼,你可能有點(diǎn)摸不著頭腦,不知道它是什么。其實(shí),業(yè)務(wù)后臺系統(tǒng)和你在拉勾網(wǎng)上看到的“ 后臺開發(fā)”大體上是一個(gè)意思。我將以外賣訂購服務(wù)為例,幫助你理解和明確它的定義和邊界。

圖片


圖 1 展示的是一個(gè)外賣系統(tǒng)全局架構(gòu),如果某公司要進(jìn)軍外賣業(yè)務(wù),就需要開發(fā)一套外賣系統(tǒng),其中包含用戶可直接使用的各個(gè)終端,如 iOS 端、Android 端、M 頁及 PC 站點(diǎn)。提供內(nèi)容展示和系統(tǒng)交互,稱為 業(yè)務(wù)前臺系統(tǒng)。

業(yè)務(wù)前臺系統(tǒng)中展示的內(nèi)容,比如外賣商品種類、商品圖片等信息,其實(shí)是由業(yè)務(wù)后臺系統(tǒng)提供的,業(yè)務(wù)前臺并沒有這些數(shù)據(jù),它只負(fù)責(zé)展示。當(dāng)用戶在前臺選擇商品點(diǎn)外賣后,實(shí)際接受并存儲訂單及調(diào)度配送的系統(tǒng)稱為 業(yè)務(wù)后臺系統(tǒng)。

總的來看,業(yè)務(wù)后臺系統(tǒng)是指直接接受前臺的請求,同時(shí)給前臺返回?cái)?shù)據(jù)或者保存前臺數(shù)據(jù)的系統(tǒng)?!皹I(yè)務(wù)”這個(gè)詞只是個(gè)代稱,代指各類業(yè)務(wù)系統(tǒng)。

很多公司有一些大數(shù)據(jù)、BI、數(shù)據(jù)挖掘等相關(guān)的系統(tǒng),它們并不屬于業(yè)務(wù)后臺系統(tǒng),可以稱為業(yè)務(wù)大數(shù)據(jù)系統(tǒng),現(xiàn)在時(shí)髦的叫法是:數(shù)據(jù)中臺。數(shù)據(jù)中臺有一個(gè)特點(diǎn),不直接接受業(yè)務(wù)前臺系統(tǒng)的請求也不直接生產(chǎn)數(shù)據(jù),而是直接對業(yè)務(wù)后臺系統(tǒng)產(chǎn)生的數(shù)據(jù)進(jìn)行分析、再加工等。

還有一些算法研究的崗位,他們主要對算法進(jìn)行研究和調(diào)優(yōu),并將這些成熟的、可用于生產(chǎn)環(huán)境的算法提供給業(yè)務(wù)后臺開發(fā)工程師。再由他們集成進(jìn)業(yè)務(wù)后臺系統(tǒng)里,提升業(yè)務(wù)的體驗(yàn),比如推薦算法、語音識別算法等。

至此,你應(yīng)該對業(yè)務(wù)后臺系統(tǒng)的邊界有一個(gè)比較清晰的了解。通過上述案例,我們還可以舉一反三,比如:

  • 在短視頻和資訊類(微博、新聞)業(yè)務(wù)里,提供查詢視頻基本信息和資訊的系統(tǒng)、能夠保存短視頻的系統(tǒng),都屬于后臺系統(tǒng)。

  • 在電商業(yè)務(wù)里,提供查詢商品信息的系統(tǒng)、保存訂單的系統(tǒng),都屬于后臺系統(tǒng)。

其他互聯(lián)網(wǎng)公司提供的系統(tǒng),你可以按此思路來判斷它們的業(yè)務(wù)后臺系統(tǒng)類別。

后臺系統(tǒng)的共性探究與歸類

在探討不同業(yè)務(wù)后臺系統(tǒng)的共性前,需要明確一個(gè)非常重要的概念,即目的性。如果不明確此概念,你會發(fā)現(xiàn)不同的業(yè)務(wù)后臺系統(tǒng)的所有技術(shù)實(shí)現(xiàn)都是 CRUD(增、查、改、刪),按此歸類后,很難看出各類業(yè)務(wù)后臺系統(tǒng)之間的區(qū)別,更別說從中提煉共性技術(shù)和通用架構(gòu)模式了。

因此, 我們首先要確定歸類的維度。具體來說,就是需要尋找一個(gè)新的維度來對業(yè)務(wù)后臺系統(tǒng)進(jìn)行歸類,并基于此歸類提煉技術(shù)共性。在我看來,這個(gè)維度就是目的性。在確定歸類的維度后,就可以對各類業(yè)務(wù)后臺進(jìn)行分類了。

接下來,我會以資訊、發(fā)布及購買、庫存及支付這三類業(yè)務(wù)為案例,講解如何基于目的性進(jìn)行歸類。

資訊類業(yè)務(wù)

下面請你思考一個(gè)問題:對于微博、知乎等類資訊業(yè)務(wù)系統(tǒng),它們的目的性是什么?

你可以從日常使用的角度來思考,顯而易見,這類 App 主要為用戶提供閱讀和瀏覽信息的業(yè)務(wù),這就是資訊業(yè)務(wù)系統(tǒng)的目的性。

比如你平時(shí)上微博和知乎的目的是娛樂或者學(xué)習(xí),我們總結(jié)為閱讀“新鮮事”。當(dāng)然,你偶爾也會發(fā)布幾條動態(tài)。想象一下,如果系統(tǒng)出現(xiàn) Bug,導(dǎo)致你曾經(jīng)發(fā)布的某條消息丟失,當(dāng)下你可能感知不到,除非某一天你去查看歷史動態(tài)。但如果系統(tǒng)異常導(dǎo)致不能閱讀“新鮮事”,用戶當(dāng)下即可感知到系統(tǒng)出現(xiàn)故障。而互聯(lián)網(wǎng)時(shí)代輿論傳播非???,這會給公司帶來很大的負(fù)面影響。因此這類事故產(chǎn)生的影響更大。

我們總結(jié)一下,資訊類業(yè)務(wù)系統(tǒng)的主要目的性是盡最大的可能性保證讀的可用性和優(yōu)化用戶體驗(yàn)。根據(jù)最終目標(biāo),我們稱它為讀類型的業(yè)務(wù)后臺系統(tǒng),或者叫讀業(yè)務(wù)。

到這里,你可能會有疑問,讀業(yè)務(wù)和 CRUD 里的 R 不是一個(gè)意思嗎?答案是:完全不同。它們主要有 2 點(diǎn)區(qū)別:

  1. 這里的“讀”是從目的性推導(dǎo)而來,是有限定要求的,它要求的“讀”是能夠滿足用戶體驗(yàn)的高性能及高可用;

  2. 定義的面不同,讀業(yè)務(wù)最重要的是保證系統(tǒng)可讀,但此系統(tǒng)仍然會提供寫刪修的功能,但對這些功能的關(guān)注度和要求指標(biāo)均較低。

和上述讀業(yè)務(wù)類似的場景有:

  • 短視頻業(yè)務(wù),在系統(tǒng)出現(xiàn)故障的極端情況下,可以不能發(fā)送新的短視頻,但需要能夠?yàn)g覽歷史視頻;

  • 電商或者外賣業(yè)務(wù)里的商品系統(tǒng),在系統(tǒng)出現(xiàn)故障的極端情況下,商家可以不能創(chuàng)建新的商品,但歷史商品需要能夠被客戶瀏覽并下單。

可以看到,上述第二個(gè)場景是某個(gè)業(yè)務(wù)中的一個(gè)系統(tǒng),而第一個(gè)場景短視頻則是一個(gè)大的業(yè)務(wù)。從這兩個(gè)差異的場景案例可以看出, 目的性這個(gè)衡量指標(biāo)可以是某一個(gè)大的業(yè)務(wù),也可以是某一個(gè)業(yè)務(wù)中的一個(gè)具體細(xì)小場景。

除了讀業(yè)務(wù)之外,還有另外兩個(gè)場景,分別是 數(shù)據(jù)寫場景和扣減場景。

發(fā)布及購買類業(yè)務(wù)

這里請你思考一個(gè)問題:對于電商、外賣和打車等交易類的業(yè)務(wù)場景,它們最重要的目的性是什么?

不管這些業(yè)務(wù)里有多少形形色色的系統(tǒng),當(dāng)出現(xiàn)一些難以恢復(fù)的故障時(shí),比如鉆石會員不能使用優(yōu)先打車通道、不能顯示此次打的是出租車還是快車等,但只要用戶能夠提交訂單打車即可。因?yàn)槿绻荒芴峤挥唵?,將直接減少企業(yè)真金白銀的收入,在商業(yè)上是不允許的。因此提單的寫入是此類業(yè)務(wù)場景中的重中之重,也是提供電商、外賣和打車服務(wù)的企業(yè)的最終目的。所以提供一個(gè)高可用的寫入服務(wù)十分重要。

庫存及支付類業(yè)務(wù)

最后,我們再來聊聊庫存及支付類業(yè)務(wù)的目的性。

圖片
圖 2:提單扣減流程

圖 2 展示的是扣減場景中的提單扣減流程,屬于一個(gè)大型業(yè)務(wù)之下的某個(gè)系統(tǒng)的技術(shù)訴求,比如庫存的扣減、次數(shù)的限制、支付金額的扣減等。雖然這幾個(gè)系統(tǒng)都會對外提供諸如查詢庫存、次數(shù)等能力, 但它最重要的是保障扣減的高可用,因?yàn)橐话憧蹨p都是和提單共同發(fā)生。如果扣減失敗,那么提單也無法成功,所以,扣減業(yè)務(wù)也是一個(gè)需要重點(diǎn)保障的場景。

以上,我們使用目的性這個(gè)維度對不同類型的公司業(yè)務(wù)(短視頻、微博、新聞資訊、電商、打車等)梳理分類,得出結(jié)論 1:

業(yè)務(wù)后臺系統(tǒng)在系統(tǒng)實(shí)現(xiàn)上均可分為讀業(yè)務(wù)、寫業(yè)務(wù)、扣減業(yè)務(wù)。

因?yàn)闃I(yè)務(wù)類型是可歸類的、通用的,所以得出結(jié)論 2:

這三大類業(yè)務(wù)后臺系統(tǒng)在技術(shù)實(shí)現(xiàn)上也是類似的,甚至可以說是統(tǒng)一的。

各類型的技術(shù)實(shí)現(xiàn)關(guān)注點(diǎn)

通過將形態(tài)各異的業(yè)務(wù)分成三大類,你應(yīng)該能夠解答本講開篇提出的問題:為什么不同公司的業(yè)務(wù)后臺開發(fā)崗的招聘要求有很多重疊?可以把你的思考和答案寫在留言區(qū),再來看我接下來的分析。

因?yàn)楹芏喙镜臉I(yè)務(wù)或者其中的某一個(gè)系統(tǒng),都?xì)w屬于同一大類,而這些類別的技術(shù)實(shí)現(xiàn)基本上大同小異,因此所有招聘或者任職要求都是類似的。

上一小節(jié),我從業(yè)務(wù)場景的角度介紹了讀業(yè)務(wù)、寫業(yè)務(wù)、扣減業(yè)務(wù),接下來我們再來看看這三大類場景在技術(shù)實(shí)現(xiàn)上各自有哪些要求。

讀業(yè)務(wù)是越快越好

首先介紹的是讀業(yè)務(wù)場景。任何業(yè)務(wù)最基本的要求是高可用,隨時(shí)保障服務(wù)可用。那么讀業(yè)務(wù)除了此要求之外還有其他什么要求嗎?

從上述的幾個(gè)案例中,你會發(fā)現(xiàn)資訊類業(yè)務(wù)(微博、知乎、短視頻),它們的“寫”即發(fā)微博、發(fā)短視頻,和用戶的“讀”即瀏覽新鮮事的次數(shù)相差非差大。一個(gè)正常的用戶,可能閱讀了 100 條微博,才會發(fā) 1 條微博。這里的讀寫比例在十倍、百倍的量級,因此讀的并發(fā)量級非常大。

另外,閱讀作為一切業(yè)務(wù)發(fā)起的起點(diǎn),對于速度的要求至關(guān)重要。不管是電商還是現(xiàn)在短視頻、微博里的直播帶貨,首先要保障用戶能夠快速瀏覽和切換商品,然后才是進(jìn)入下一步的購買頁面。你可以想象一下,如果一個(gè)商品圖片加載很慢,或一個(gè)資訊類應(yīng)用新聞半天不展示,你還會耐心等待嗎?

因此,作為大多數(shù)業(yè)務(wù)的起點(diǎn),除了完成高可用外,讀業(yè)務(wù)的實(shí)現(xiàn)還要求能夠在海量讀請求下保障高性能。

寫業(yè)務(wù)需要 101% 高可用

在上一小節(jié),我們在讀業(yè)務(wù)的技術(shù)實(shí)現(xiàn)分析里提到,保障高可用是基本要求。那么,寫入業(yè)務(wù)如提交訂單等場景,還需要再提及高可用嗎?

答案當(dāng)然是要,此小節(jié)的標(biāo)題我用了一個(gè)夸張的寫法“101% 高可用”。我在本講寫入的場景介紹里提到,寫入基本上是提交訂單,它和實(shí)實(shí)在在的企業(yè)收入相關(guān)。因此,我們需要盡“101%” 的努力去保障可用性。

如果讀服務(wù)出現(xiàn)存儲或應(yīng)用故障,可以在前端或者終端進(jìn)行前置緩存抗一段時(shí)間。緩存給研發(fā)或者運(yùn)維提供了分鐘級別的故障處理、數(shù)據(jù)修復(fù)的可能。

但寫入服務(wù)是無法使用緩存的。此外,對于各大電商、打車、外賣平臺來說,故障恢復(fù)的時(shí)間需要在一分鐘內(nèi)或者秒級別。故我們在架構(gòu)設(shè)計(jì)時(shí)需要做到“101%”的高可用,這樣在實(shí)際生產(chǎn)環(huán)境才能高效應(yīng)對故障的發(fā)生。

扣減業(yè)務(wù)要抗住并發(fā)和保障數(shù)據(jù)一致性

對于扣減業(yè)務(wù),從目的性上講,最重要的就是抗住并發(fā)的扣減量。除開高可用外,你會覺得扣減和寫入有很多類似的地方,甚至可以歸為一類。

對于寫入業(yè)務(wù),以提交訂單為例,在寫入的時(shí)候,所有的數(shù)據(jù)都是用戶從表單里提交過來的,比如購買商品的名稱和數(shù)量、收貨地址等,這些數(shù)據(jù)是這個(gè)用戶私有的。在技術(shù)實(shí)現(xiàn)上,我們只要能夠盡“101%”的可能性把它保存下來即可。

而對于扣減則不是,以庫存為例,扣減的請求只會包含購買的商品和對應(yīng)的數(shù)量,而具體能不能買,則依賴后臺系統(tǒng)存儲的當(dāng)前剩余庫存數(shù)量。另外, 不同用戶在同一時(shí)刻可能購買同一個(gè)商品,此處就存在并發(fā)更新,這種在并發(fā)情況下的扣減一致性需要格外注意。

雖然,扣減類業(yè)務(wù)也會對外提供一些諸如剩余數(shù)量和金額的查詢接口,但扣減類系統(tǒng)提供的最重要的能力是被各類訂單所依賴的扣減接口。它的穩(wěn)定性決定了提交訂單的穩(wěn)定性。因此, 扣減類業(yè)務(wù)的重點(diǎn)就是在并發(fā)情況下保障扣減的準(zhǔn)確性和抗擊高并發(fā)的能力。

總結(jié)

在本講,我向你提供了一個(gè)對形態(tài)各異的業(yè)務(wù)模式歸類的方法。不管各大公司提供的具體業(yè)務(wù)是什么,從技術(shù)的目的性上看,它們都是提供了三大類技術(shù)角度的業(yè)務(wù)。這也就解答了,為什么各大公司的后臺開發(fā)崗位的招聘要求是類似的,穿過業(yè)務(wù)的外皮,它們底層邏輯相同。

另外,有一個(gè)點(diǎn)需要你注意,本講對各公司大的業(yè)務(wù)層面進(jìn)行了劃分,相信你已經(jīng)對誰屬于讀業(yè)務(wù)、誰又屬于寫業(yè)務(wù)有了通透的理解。此時(shí)不妨嘗試問自己一個(gè)問題:是不是經(jīng)過上述定性后,就可以認(rèn)為某個(gè)公司的系統(tǒng)都是某一特性的業(yè)務(wù)了(不是讀業(yè)務(wù)就是寫業(yè)務(wù))?

其實(shí)不然,如訂單系統(tǒng),從大的目的性來看它屬于寫業(yè)務(wù)。但進(jìn)一步剖析,會發(fā)現(xiàn)它對外提供的訂單詳情和列表是讀業(yè)務(wù)。本講的案例只是在一個(gè)比較高的維度對各大公司進(jìn)行了劃分,你可以繼續(xù)利用目的性對它們做進(jìn)一步的劃分。

為什么不同類型的業(yè)務(wù)后臺架構(gòu)模式是通用的的評論 (共 條)

分享到微博請遵守國家法律
青川县| 曲水县| 通州区| 西青区| 抚宁县| 荃湾区| 黔南| 白河县| 洛扎县| 阜新| 临沧市| 西林县| 潮州市| 犍为县| 竹山县| 宁陵县| 神农架林区| 景宁| 马关县| 古交市| 巴塘县| 芦溪县| 太湖县| 北京市| 万宁市| 林州市| 宁海县| 临洮县| 石城县| 宕昌县| 南雄市| 鲁山县| 荆门市| 珲春市| 甘孜县| 汪清县| 卓资县| 罗源县| 营山县| 徐水县| 大安市|