忻州内厩机械设备有限公司

熱門系統(tǒng)產(chǎn)品
電商交易類產(chǎn)品
渠道/經(jīng)銷商產(chǎn)品
AI人工智能產(chǎn)品
業(yè)務(wù)協(xié)同系統(tǒng)產(chǎn)品
其他產(chǎn)品與服務(wù)
沒有你合適的?
我要定制 >

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

發(fā)布時間: 2018-10-18 文章分類: 技術(shù)干貨
閱讀量: 0

這段時間,一直在總結(jié)電商商城系統(tǒng)網(wǎng)站系統(tǒng)的相關(guān)基礎(chǔ)技術(shù)和架構(gòu),寫了很多東西。但是還是發(fā)現(xiàn)一個很重要,很基礎(chǔ)的方面沒有講到,那就是數(shù)據(jù)庫讀寫分離的主從架構(gòu)。可能發(fā)展到大型成熟的公司之后,主從架構(gòu)已經(jīng)落伍了,取而代之的是更加復(fù)雜的數(shù)據(jù)庫集群。但是作為一個小型電商公司,數(shù)據(jù)庫的主從架構(gòu)應(yīng)該是最基礎(chǔ)的。任何大型的系統(tǒng)架構(gòu),都是不斷演進的。主從架構(gòu)便是數(shù)據(jù)庫架構(gòu)中,最基礎(chǔ)的架構(gòu)。所以研究完主從架構(gòu),也就能看懂更加復(fù)雜的架構(gòu)了。

首先為什么要讀寫分離?

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

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

1. 將讀操作和寫操作分離到不同的數(shù)據(jù)庫上,避免主服務(wù)器出現(xiàn)性能瓶頸;

2. 主服務(wù)器進行寫操作時,不影響查詢應(yīng)用服務(wù)器的查詢性能,降低阻塞,提高并發(fā);

3. 數(shù)據(jù)擁有多個容災(zāi)副本,提高數(shù)據(jù)安全性,同時當(dāng)主服務(wù)器故障時,可立即切換到其他服務(wù)器,提高系統(tǒng)可用性;

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

讀寫分離的基本原理就是讓主數(shù)據(jù)庫處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE)操作,而從數(shù)據(jù)庫處理SELECT查詢操作。數(shù)據(jù)庫復(fù)制被用來把事務(wù)性操作導(dǎo)致的變更同步到其他從數(shù)據(jù)庫。以SQL為例,主庫負責(zé)寫數(shù)據(jù)、讀數(shù)據(jù)。讀庫僅負責(zé)讀數(shù)據(jù)。每次有寫庫操作,同步更新到讀庫。寫庫就一個,讀庫可以有多個,采用日志同步的方式實現(xiàn)主庫和多個讀庫的數(shù)據(jù)同步。

一:Sql Server 讀寫分離的配置

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

1. 日志傳送:SQL Server 2008 R2 主從數(shù)據(jù)庫同步。 

2. 事務(wù)復(fù)制:SQL Server 復(fù)制:事務(wù)發(fā)布

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

(PS:此圖為網(wǎng)上找的,具體的原文地址已經(jīng)找不到了,故無法標(biāo)明作者,請見諒。)

二:C# 數(shù)據(jù)庫讀寫操作

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

1. 最簡單的就是:配置兩個數(shù)據(jù)庫連接,然后在各個數(shù)據(jù)庫調(diào)用的位置,區(qū)分讀寫請求相應(yīng)的數(shù)據(jù)庫服務(wù)器,如下圖

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

2. 第二種解決方案就是判斷SQL語句是寫語句(insert 、update、Create、 Alter)還是讀語句(Select)。demo 下載 

(PS:此demo為本人總結(jié),跟實際生產(chǎn)中的DLL 不太相同,但是原理是一樣的,大家字節(jié)總結(jié)封裝吧。)

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

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

電商總結(jié)(三)構(gòu)建數(shù)據(jù)庫的主從架構(gòu)

文章來源:博客園

<數(shù)商云(www.zhimaihui.cn)是國內(nèi)知名企業(yè)級電商平臺提供商,為企業(yè)級商家提供最佳的系統(tǒng)開發(fā)(多種模式電商平臺搭建:B2B/B2B2C/B2C/O2O/新零售等)、供應(yīng)鏈系統(tǒng)搭建及電商行業(yè)解決方案服務(wù)>

點贊 | 0

數(shù)商云是一家全鏈數(shù)字化運營服務(wù)商,專注于提供SCM/企業(yè)采購/SRM供應(yīng)商/DMS經(jīng)銷商/渠道商等管理系統(tǒng),B2B/S2B/S2C/B2B2C/B2C等電商系統(tǒng),從“供應(yīng)鏈——生產(chǎn)運營——銷售市場”端到端的全鏈數(shù)字化產(chǎn)品和方案,致力于通過數(shù)字化和新技術(shù)為企業(yè)創(chuàng)造商業(yè)數(shù)字化價值。

添加企業(yè)微信獲取更多資料
添加企業(yè)微信獲取更多資料
相關(guān)文章

評論

剩余-200
發(fā)表
填寫以下信息, 免費獲取方案報價
姓名
手機號碼
企業(yè)名稱
  • 建筑建材
  • 化工
  • 鋼鐵
  • 機械設(shè)備
  • 原材料
  • 工業(yè)
  • 環(huán)保
  • 生鮮
  • 醫(yī)療
  • 快消品
  • 農(nóng)林牧漁
  • 汽車汽配
  • 橡膠
  • 工程
  • 加工
  • 儀器儀表
  • 紡織
  • 服裝
  • 電子元器件
  • 物流
  • 化塑
  • 食品
  • 房地產(chǎn)
  • 交通運輸
  • 能源
  • 印刷
  • 教育
  • 跨境電商
  • 旅游
  • 皮革
  • 3C數(shù)碼
  • 金屬制品
  • 批發(fā)
  • 研究和發(fā)展
  • 其他行業(yè)
需求描述
填寫以下信息馬上為您安排系統(tǒng)演示
姓名
手機號碼
你的職位
企業(yè)名稱

恭喜您的需求提交成功

尊敬的用戶,您好!

您的需求我們已經(jīng)收到,我們會為您安排專屬電商商務(wù)顧問在24小時內(nèi)(工作日時間)內(nèi)與您取得聯(lián)系,請您在此期間保持電話暢通,并且注意接聽來自廣州區(qū)域的來電。
感謝您的支持!

您好,我是您的專屬產(chǎn)品顧問
掃碼添加我的微信,免費體驗系統(tǒng)
(工作日09:00 - 18:00)
專屬顧問圖片
電話咨詢 (工作日09:00 - 18:00)
客服熱線: 4008 868 127
售前熱線: 189 2432 2993
掃碼即可快速撥打熱線