2. 日志與監(jiān)控系統(tǒng)的解決方案

3. 構(gòu)建數(shù)據(jù)庫(kù)的主從架構(gòu)

4. 基于共享存儲(chǔ)的圖片服務(wù)器架構(gòu)

5. 移動(dòng)M站建設(shè)

6. 系統(tǒng)容量預(yù)估

7. 緩存系統(tǒng)

一、小型電商網(wǎng)站的架構(gòu)


剛從傳統(tǒng)軟件行業(yè)進(jìn)" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > 電子商務(wù)網(wǎng)站架構(gòu)分享

電子商務(wù)網(wǎng)站架構(gòu)分享

時(shí)間:2022-08-24 13:27:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2022-08-24 13:27:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

1. 小型電商網(wǎng)站的架構(gòu)

2. 日志與監(jiān)控系統(tǒng)的解決方案

3. 構(gòu)建數(shù)據(jù)庫(kù)的主從架構(gòu)

4. 基于共享存儲(chǔ)的圖片服務(wù)器架構(gòu)

5. 移動(dòng)M站建設(shè)

6. 系統(tǒng)容量預(yù)估

7. 緩存系統(tǒng)

一、小型電商網(wǎng)站的架構(gòu)


剛從傳統(tǒng)軟件行業(yè)進(jìn)入到電商企業(yè)時(shí),覺(jué)得電商網(wǎng)站沒(méi)有什么技術(shù)含量,也沒(méi)有什么門(mén)檻,都是一些現(xiàn)有的東西堆積木似的堆出來(lái)罷了。然而,真正進(jìn)入到這個(gè)行業(yè)之后,才發(fā)現(xiàn)并非如此。有人說(shuō)過(guò),好的架構(gòu),是演化出來(lái)的,電商網(wǎng)站的架構(gòu)也是如此。現(xiàn)在好的電商網(wǎng)站,看似很復(fù)雜,很牛逼,其實(shí)也是從很小的架構(gòu),也是從沒(méi)什么技術(shù)含量開(kāi)始的。所以,架構(gòu)的演化過(guò)程,就是在技術(shù)團(tuán)隊(duì)不斷追求極致的過(guò)程。



今天就來(lái)總結(jié)小型電商網(wǎng)站的架構(gòu)演進(jìn)。一套電商系統(tǒng)最初期的架構(gòu),往往會(huì)采用一個(gè)比較典型的LAMP架構(gòu),前端加上Apache/PHP,后端是MySQL。這個(gè)算是比較流行的。不過(guò),目前還有一套.net的技術(shù)架構(gòu),可能大家很少提到。很不幸,我就是在一個(gè).net平臺(tái)為基礎(chǔ)的電商公司。所以,今天也是要總結(jié).net 平臺(tái)的電商架構(gòu)。

1、技術(shù)架構(gòu)

一般初期的電商網(wǎng)站,基本就幾個(gè)業(yè)務(wù)子系統(tǒng):網(wǎng)站前臺(tái)、商家前臺(tái)、系統(tǒng)管理后臺(tái)、App、M站等。業(yè)務(wù)量也不是很大。所以,MVC + 緩存 + 數(shù)據(jù)庫(kù)基本就搞定了。


單就開(kāi)發(fā)效率而言,.net MVC 的技術(shù)架構(gòu)不會(huì)比LAMP開(kāi)發(fā)速度慢。所以,一些企業(yè),為了快速推出自己的電商平臺(tái),也會(huì)采用.net 架構(gòu)。

2、基礎(chǔ)架構(gòu)

上圖為基礎(chǔ)架構(gòu)層面。這是一個(gè)很簡(jiǎn)單的基礎(chǔ)架構(gòu)。


3、詳細(xì)架構(gòu)

整個(gè)系統(tǒng)架構(gòu)里面,還有一個(gè)比較重要的組成部分,那就是監(jiān)控系統(tǒng)。例如:流量監(jiān)控、硬件監(jiān)控、系統(tǒng)性能監(jiān)控等, 還有就是對(duì)某個(gè)頁(yè)面進(jìn)行監(jiān)控,設(shè)置頁(yè)面的其中一塊進(jìn)行監(jiān)控等。它是提高整個(gè)平臺(tái)可用性的一個(gè)重要手段。多平臺(tái)、多個(gè)維度的監(jiān)控,能夠確保系統(tǒng)的可用性。一旦出現(xiàn)異常,特別在硬件或者性能方面出現(xiàn)異常,監(jiān)控系統(tǒng)也能立刻發(fā)出警告,這樣也好防范于未然。


總而言之,一個(gè)好的系統(tǒng)架構(gòu)應(yīng)該從擴(kuò)展性、安全性、性能和可靠性來(lái)考慮。羅馬不是一天建成的,架構(gòu)適合就行,可以先行之而后優(yōu)。通過(guò)漸進(jìn)演化的過(guò)程,逐步讓系統(tǒng)越來(lái)越完善。

二、日志與監(jiān)控系統(tǒng)的解決方案


監(jiān)控系統(tǒng)主要用于服務(wù)器集群的資源和性能監(jiān)控,以及應(yīng)用異常、性能監(jiān)控、日志管理等多維度的性能監(jiān)控分析。一個(gè)完善的監(jiān)控系統(tǒng)和日志系統(tǒng)對(duì)于一個(gè)系統(tǒng)的重要性不必多說(shuō)??傊挥袑?shí)時(shí)了解各系統(tǒng)的狀態(tài),才能保證各系統(tǒng)的穩(wěn)定。



如上圖所示,監(jiān)控平臺(tái)監(jiān)控的范圍很廣,從服務(wù)器性能及資源,到應(yīng)用系統(tǒng)的監(jiān)控。每個(gè)公司都有特定的平臺(tái)統(tǒng)一監(jiān)控的需求及解決方案,但監(jiān)控平臺(tái)的任務(wù)和作用基本是一致的。


1、日志

日志是監(jiān)視程序運(yùn)行的一種重要的方式,主要有兩個(gè)目的:1.bug的及時(shí)發(fā)現(xiàn)和定位;2.顯示程序運(yùn)行狀態(tài)。


正確詳細(xì)的日志記錄能夠快速的定位問(wèn)題。同樣,通過(guò)查看日志,可以看出程序正在做什么,是不是按預(yù)期的設(shè)計(jì)在執(zhí)行,所以記錄下程序的運(yùn)行狀態(tài)是必要的。這里將日志分為兩種:1.異常日志;2.運(yùn)行日志。


我們主要是使用log4net,將各個(gè)系統(tǒng)的日志,持久化記錄到數(shù)據(jù)庫(kù)或者文件中,以方便后續(xù)的系統(tǒng)異常監(jiān)控和性能分析。如何集成log4net,這里不多說(shuō)。


日志記錄的幾個(gè)原則:


2、監(jiān)控

監(jiān)控系統(tǒng)是一個(gè)復(fù)雜的系統(tǒng)平臺(tái),目前有很多的開(kāi)源產(chǎn)品和平臺(tái)。不過(guò)我們平臺(tái)小,監(jiān)控任務(wù)和需求少,所以基本都是自己開(kāi)發(fā)。主要有這五個(gè)方面:1.系統(tǒng)資源;2.服務(wù)器;3.服務(wù);4.應(yīng)用異常;5.應(yīng)用性能。


具體的架構(gòu)圖如下:

1)系統(tǒng)資源監(jiān)控

監(jiān)控各種網(wǎng)絡(luò)參數(shù)和各服務(wù)器相關(guān)資源(CPU、內(nèi)存、磁盤(pán)讀寫(xiě)、網(wǎng)絡(luò)、訪問(wèn)請(qǐng)求等),保證服務(wù)器系統(tǒng)的安全運(yùn)營(yíng),并提供異常通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問(wèn)題。目前比較流行的應(yīng)該是Zabbix。


2)服務(wù)器監(jiān)控

服務(wù)器的監(jiān)控,主要是監(jiān)控各個(gè)服務(wù)器、網(wǎng)絡(luò)節(jié)點(diǎn)、網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備的請(qǐng)求響應(yīng)是否正常。通過(guò)定時(shí)服務(wù),定時(shí)去Ping各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備,以確認(rèn)各網(wǎng)絡(luò)設(shè)備是否正常。如果哪個(gè)網(wǎng)絡(luò)設(shè)備出現(xiàn)異常,則發(fā)出消息提醒。


3)服務(wù)監(jiān)控

服務(wù)監(jiān)控,指的是各個(gè)Web服務(wù)、圖片服務(wù)、搜索引擎服務(wù)、緩存服務(wù)等平臺(tái)系統(tǒng)的各項(xiàng)服務(wù)是否正常運(yùn)行。可以通過(guò)定時(shí)服務(wù),每隔一段時(shí)間,就去請(qǐng)求相關(guān)的服務(wù),以確保平臺(tái)的各項(xiàng)服務(wù)正常運(yùn)行。


4)應(yīng)用異常監(jiān)控

目前我們平臺(tái)所有系統(tǒng)的異常記錄,都記錄在數(shù)據(jù)庫(kù)中。通過(guò)定時(shí)服務(wù),統(tǒng)計(jì)分析一段時(shí)間之內(nèi)的異常記錄。如果發(fā)現(xiàn)有相關(guān)重要的模塊的系統(tǒng)異常,比如支付、下單模塊頻繁發(fā)生異常,則立即通知相關(guān)人員處理,確保服務(wù)正常運(yùn)行。


5)應(yīng)用性能監(jiān)控


在API接口和各應(yīng)用的相關(guān)位置進(jìn)行攔截和記錄下程序性能(SQL性能,或是 程序執(zhí)行效率)。相關(guān)重要模塊提供性能預(yù)警,提前發(fā)現(xiàn)問(wèn)題。 同時(shí)統(tǒng)計(jì)相關(guān)監(jiān)控信息并顯示給開(kāi)發(fā)的人員,以方便后續(xù)的性能分析。

三、構(gòu)建數(shù)據(jù)庫(kù)的主從架構(gòu)


發(fā)展到大型成熟的公司之后,主從架構(gòu)可能就有點(diǎn)落伍了,取而代之的是更加復(fù)雜的數(shù)據(jù)庫(kù)集群。但作為一個(gè)小型電商公司,數(shù)據(jù)庫(kù)的主從架構(gòu)應(yīng)該是最基礎(chǔ)的。任何大型的系統(tǒng)架構(gòu),都是不斷演進(jìn)的。主從架構(gòu)便是數(shù)據(jù)庫(kù)架構(gòu)中最基礎(chǔ)的架構(gòu)。所以研究完主從架構(gòu),也就能看懂更加復(fù)雜的架構(gòu)了。


首先為什么要讀寫(xiě)分離?


對(duì)于一個(gè)小型網(wǎng)站,可能單臺(tái)數(shù)據(jù)庫(kù)服務(wù)器就能滿足需求。但在一些大型的網(wǎng)站或者應(yīng)用中,單臺(tái)的數(shù)據(jù)庫(kù)服務(wù)器可能難以支撐大的訪問(wèn)壓力,升級(jí)服務(wù)器性能成本又太高,所以必須要橫向擴(kuò)展。還有就是,單庫(kù)的話,讀、寫(xiě)都是操作一個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)多了之后,對(duì)數(shù)據(jù)庫(kù)的讀、寫(xiě)性能就會(huì)有很大影響。同時(shí)對(duì)于數(shù)據(jù)安全性和系統(tǒng)的穩(wěn)定性也是挑戰(zhàn)。


數(shù)據(jù)庫(kù)的讀寫(xiě)分離的好處?


讀寫(xiě)分離的基本原理就是讓主數(shù)據(jù)庫(kù)處理事務(wù)性增、改、刪操作(Insert、Update、Delete)操作,而從數(shù)據(jù)庫(kù)處理Select查詢操作。數(shù)據(jù)庫(kù)復(fù)制被用來(lái)把事務(wù)性操作導(dǎo)致的變更同步到其它從數(shù)據(jù)庫(kù)。


以SQL為例,主庫(kù)負(fù)責(zé)寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)。讀庫(kù)僅負(fù)責(zé)讀數(shù)據(jù)。每次有寫(xiě)庫(kù)操作,同步更新到讀庫(kù)。寫(xiě)庫(kù)就一個(gè),讀庫(kù)可以有多個(gè),采用日志同步的方式實(shí)現(xiàn)主庫(kù)和多個(gè)讀庫(kù)的數(shù)據(jù)同步。

1、SQL Server 讀寫(xiě)分離的配置

SQL Server提供了三種技術(shù),可以用于主從架構(gòu)之間的數(shù)據(jù)同步的實(shí)現(xiàn):日志傳送、事務(wù)復(fù)制和SQL 2012 中新增的功能Always On 技術(shù)。各自優(yōu)劣,具體的大家自己去百度吧.


2、C# 數(shù)據(jù)庫(kù)讀寫(xiě)操作

C#的請(qǐng)求數(shù)據(jù)庫(kù)操作,單數(shù)據(jù)庫(kù)和主從架構(gòu)的數(shù)據(jù)庫(kù)還是不一樣的。主從架構(gòu)的數(shù)據(jù)庫(kù),為了保證數(shù)據(jù)一致性,一般主庫(kù)可讀可寫(xiě),從庫(kù)只負(fù)責(zé)讀,不負(fù)責(zé)寫(xiě)入。所以,實(shí)際C#在請(qǐng)求數(shù)據(jù)庫(kù)時(shí),要進(jìn)行區(qū)別對(duì)待。

最簡(jiǎn)單的就是:配置兩個(gè)數(shù)據(jù)庫(kù)連接,然后在各個(gè)數(shù)據(jù)庫(kù)調(diào)用的位置,區(qū)分讀寫(xiě)請(qǐng)求相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。

第二種解決方案就是判斷SQL語(yǔ)句是寫(xiě)語(yǔ)句(Insert 、Update、Create、 Alter)還是讀語(yǔ)句(Select)。



同時(shí),增加相關(guān)的數(shù)據(jù)庫(kù)配置



四、基于共享存儲(chǔ)的圖片服務(wù)器架構(gòu)


在當(dāng)前這個(gè)互聯(lián)網(wǎng)的時(shí)代,不管何種網(wǎng)站,對(duì)圖片的需求量越來(lái)越大。尤其是電商網(wǎng)站,幾乎都會(huì)面臨到海量圖片資源的存儲(chǔ)、訪問(wèn)等相關(guān)技術(shù)問(wèn)題。在對(duì)圖片服務(wù)器的架構(gòu)、擴(kuò)展、升級(jí)的過(guò)程中,肯定也會(huì)碰到各種各樣的問(wèn)題與需求。當(dāng)然這并不代表,你就必須得弄一個(gè)特別NB的圖片服務(wù)架構(gòu),只要簡(jiǎn)單、高效、穩(wěn)定就行。這部分我們來(lái)總結(jié)一個(gè)特別簡(jiǎn)單、高效的圖片服務(wù)架構(gòu):通過(guò)共享存儲(chǔ)的方式來(lái)實(shí)現(xiàn)圖片服務(wù)架構(gòu)。


然而,也有一些人問(wèn)我,現(xiàn)在大型網(wǎng)站的圖片服務(wù)器的架構(gòu)已經(jīng)完全不是這樣了,別人家的圖片系統(tǒng)比你這個(gè)牛逼多了,為啥不直接寫(xiě)那個(gè)呢?


事實(shí)是:第一,大型牛逼的系統(tǒng)我也不會(huì);第二, 再牛逼的系統(tǒng)也是從小的架構(gòu)演化過(guò)去的,沒(méi)有一步到位的。這里介紹圖片服務(wù)器架構(gòu)雖然比較簡(jiǎn)單,但也是經(jīng)過(guò)了單機(jī)時(shí)代的演化了,基本上可以滿足中小型分布式網(wǎng)站的需求。這種架構(gòu)的搭建和學(xué)習(xí)成本都極低,符合目前“短平快”的開(kāi)發(fā)模式。


通過(guò)共享目錄的方式實(shí)現(xiàn)共享存儲(chǔ) ,在共享目錄文件服務(wù)器上配置獨(dú)立域名,這樣可以將圖片服務(wù)器和應(yīng)用服務(wù)器進(jìn)行分離,來(lái)實(shí)現(xiàn)獨(dú)立圖片服務(wù)器。


本文來(lái)自于精博建站(http://jingbozhan.com),致力于讓更多的企業(yè)或個(gè)人擁有設(shè)計(jì)優(yōu)雅,功能強(qiáng)大的營(yíng)銷型網(wǎng)站或電子商務(wù)網(wǎng)站。精博建站平臺(tái)擁有豐富的網(wǎng)站模板,價(jià)格平民。精博建站同時(shí)接受高端網(wǎng)站定制服務(wù)。

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉