電子商務(wù)網(wǎng)站開(kāi)發(fā)之構(gòu)建數(shù)據(jù)庫(kù)的主從架構(gòu)
最新消息,日前,宜家的控股公司Interogo Holding AG斥資17億瑞典克朗(約1.90億美元)買(mǎi)入海恩斯莫里斯(H&M)集團(tuán)0.6%的股份,并擁持有了后者0.3%的投票權(quán)。這是Interogo Holding AG第一次擁有快時(shí)尚公司的股份。
作為一個(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ù)器就能滿(mǎn)足需求,但是在一些大型的網(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ě)分離的好處?
1. 將讀操作和寫(xiě)操作分離到不同的數(shù)據(jù)庫(kù)上,避免主服務(wù)器出現(xiàn)性能瓶頸;
2. 主服務(wù)器進(jìn)行寫(xiě)操作時(shí),不影響查詢(xún)應(yīng)用服務(wù)器的查詢(xún)性能,降低阻塞,提高并發(fā);
3. 數(shù)據(jù)擁有多個(gè)容災(zāi)副本,提高數(shù)據(jù)安全性,同時(shí)當(dāng)主服務(wù)器故障時(shí),可立即切換到其他服務(wù)器,提高系統(tǒng)可用性;
讀寫(xiě)分離的基本原理就是讓主數(shù)據(jù)庫(kù)處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE)操作,而從數(shù)據(jù)庫(kù)處理SELECT查詢(xún)操作。數(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ù)同步。
一:Sql Server 讀寫(xiě)分離的配置
SQL Server 提供了三種技術(shù),可以用于主從架構(gòu)之間的數(shù)據(jù)同步的實(shí)現(xiàn):日志傳送、事務(wù)復(fù)制和SQL 2012 中新增的功能Always On 技術(shù)。各自?xún)?yōu)劣,具體的大家自己去百度吧,這里提供網(wǎng)上的朋友的配置方式,僅供參考。
1. 日志傳送:SQL Server 2008 R2 主從數(shù)據(jù)庫(kù)同步。
2. 事務(wù)復(fù)制:SQL Server 復(fù)制:事務(wù)發(fā)布
二: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í)候,還是要區(qū)別對(duì)待。
1. 最簡(jiǎn)單的就是:配置兩個(gè)數(shù)據(jù)庫(kù)連接,然后在各個(gè)數(shù)據(jù)庫(kù)調(diào)用的位置,區(qū)分讀寫(xiě)請(qǐng)求相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器
2.第二種解決方案就是判斷SQL語(yǔ)句是寫(xiě)語(yǔ)句(insert 、update、Create、 Alter)還是讀語(yǔ)句(Select)。demo 下載
同時(shí),增加相關(guān)的數(shù)據(jù)庫(kù)配置
<hishop(www.hydrodefense.cn)是國(guó)內(nèi)知名企業(yè)級(jí)電商平臺(tái)提供商,為企業(yè)級(jí)商家提供最佳的系統(tǒng)開(kāi)發(fā)(多種模式電商平臺(tái)搭建:B2B/B2B2C/B2C/O2O/新零售等)、供應(yīng)鏈系統(tǒng)搭建及電商行業(yè)解決方案服務(wù)>
-
B2B2C多用戶(hù)商城系統(tǒng)支持企業(yè)自營(yíng)與商戶(hù)入駐模式共存 會(huì)員一站式精細(xì)化營(yíng)銷(xiāo)工具 多用戶(hù)分銷(xiāo),帶來(lái)爆發(fā)式增長(zhǎng)
系統(tǒng)支持平臺(tái)自營(yíng)+供應(yīng)商店鋪共存的經(jīng)營(yíng)模式(類(lèi)天貓&京東模式),幫助企業(yè)打造生態(tài)級(jí)商業(yè)平臺(tái)為目的的電子商務(wù)系統(tǒng)。
免費(fèi)試用系統(tǒng) -
B2B2B電商交易系統(tǒng)優(yōu)化供應(yīng)鏈協(xié)作 授信及賬期支付 商品按照數(shù)量階梯設(shè)價(jià)
全渠道訂貨/采購(gòu)及經(jīng)銷(xiāo)商管理數(shù)字化系統(tǒng),實(shí)現(xiàn)供應(yīng)鏈整合和交易便捷化。
免費(fèi)試用系統(tǒng) -
S2B2B電商交易系統(tǒng)供銷(xiāo)一體化,提高市場(chǎng)集中度 集團(tuán)管控一體化,有效實(shí)現(xiàn)供需匹配 移動(dòng)應(yīng)用一體化,提高運(yùn)營(yíng)綜合效率
上下游資源整合數(shù)字化解決方案,賦能產(chǎn)業(yè)供應(yīng)鏈,構(gòu)建產(chǎn)業(yè)互聯(lián)網(wǎng)生態(tài)體系。
免費(fèi)試用系統(tǒng)
