日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
數(shù)據(jù)庫(kù)治理利器:動(dòng)態(tài)讀寫(xiě)分離

背景

在分布式系統(tǒng)架構(gòu)中,業(yè)務(wù)的流量都是端到端的。每個(gè)請(qǐng)求都會(huì)經(jīng)過(guò)很多層處理,比如從入口網(wǎng)關(guān)再到 Web Server 再到服務(wù)之間的調(diào)用,再到服務(wù)訪(fǎng)問(wèn)緩存或 DB 等存儲(chǔ)。

成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、黃巖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為黃巖等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

對(duì)于我們的系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)是非常重要的一塊。因此無(wú)論是在穩(wěn)定性的治理上,還是在開(kāi)發(fā)提效等場(chǎng)景下,數(shù)據(jù)庫(kù)相關(guān)的治理能力都是我們系統(tǒng)所需具備的能力。下面總結(jié)了微服務(wù)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)層時(shí),在數(shù)據(jù)庫(kù)治理中的常見(jiàn)的一些場(chǎng)景與能力。

OpenSergo 領(lǐng)域中關(guān)于數(shù)據(jù)庫(kù)治理的概覽

本文將介紹 MSE 服務(wù)治理最近推出數(shù)據(jù)庫(kù)治理利器:無(wú)侵入實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的讀寫(xiě)分離能力。

什么是讀寫(xiě)分離?

讀寫(xiě)分離也就是將數(shù)據(jù)庫(kù)拆分為主庫(kù)和從庫(kù),即主庫(kù)負(fù)責(zé)處理事務(wù)性的增刪改操作,從庫(kù)負(fù)責(zé)處理查詢(xún)操作的數(shù)據(jù)庫(kù)架構(gòu)。

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

穩(wěn)定性

一個(gè)大客戶(hù)的請(qǐng)求過(guò)來(lái),查詢(xún)數(shù)據(jù)庫(kù)返回上萬(wàn)條幾百 M 的數(shù)據(jù),數(shù)據(jù)庫(kù)的 CPU 直接打滿(mǎn)。不知道大家是否遇到過(guò)類(lèi)似的問(wèn)題。

性能

在業(yè)務(wù)處理過(guò)程中,如果對(duì)數(shù)據(jù)庫(kù)的讀操作遠(yuǎn)多于寫(xiě)操作,同時(shí)業(yè)務(wù)上對(duì)于數(shù)據(jù)查詢(xún)結(jié)果的實(shí)時(shí)性要求不高(例如可以容忍秒級(jí)的延遲),那么在做系統(tǒng)性能優(yōu)化時(shí)就可以考慮引入讀寫(xiě)分離的方案,只讀庫(kù)可以承擔(dān)主庫(kù)的壓力,有效提升微服務(wù)應(yīng)用的性能。

規(guī)模增長(zhǎng)

隨著業(yè)務(wù)增長(zhǎng),到了一定規(guī)模之后再擴(kuò)容,但很多都卡在擴(kuò)容這一步,極大的限制了應(yīng)對(duì)市場(chǎng)變化的速度,其中數(shù)據(jù)庫(kù)的擴(kuò)容是最難的,目前常見(jiàn)的數(shù)據(jù)庫(kù)擴(kuò)容方式有以下幾種方式:

  • 垂直升級(jí)
  • 分庫(kù)分表
  • 讀寫(xiě)分離

垂直升級(jí)需要中斷服務(wù)且高可用方面不及其它幾種方式,分庫(kù)分表在分區(qū)鍵的選擇上會(huì)是個(gè)難點(diǎn),SQL 使用上會(huì)有諸多限制,同時(shí)對(duì)業(yè)務(wù)的改造也是非常大的工作量。相對(duì)來(lái)說(shuō)讀寫(xiě)分離是對(duì)業(yè)務(wù)的侵入最低也最容易實(shí)現(xiàn)擴(kuò)容方案。根據(jù)經(jīng)驗(yàn)大多數(shù)應(yīng)用的讀寫(xiě)比都在 5:1 以上,有些場(chǎng)景甚至大量的高于 10:1,在對(duì)數(shù)據(jù)庫(kù)有少量寫(xiě)請(qǐng)求,但有大量讀請(qǐng)求的應(yīng)用場(chǎng)景下,單個(gè)實(shí)例可能無(wú)法承受讀取壓力,甚至對(duì)業(yè)務(wù)產(chǎn)生影響。

綜上所述數(shù)據(jù)庫(kù)讀寫(xiě)分離方案可以滿(mǎn)足阿里云上大多數(shù)公司的穩(wěn)定性治理、性能提升以及數(shù)據(jù)庫(kù)擴(kuò)容的需求。

讀寫(xiě)分離常見(jiàn)方案

目前業(yè)界流行的讀寫(xiě)分離方案,通常都是基于上述主從模式的數(shù)據(jù)庫(kù)架構(gòu)。讀寫(xiě)分離的實(shí)現(xiàn)方案多數(shù)是通過(guò)引入 odp、mycat 等數(shù)據(jù)訪(fǎng)問(wèn)代理產(chǎn)品,通過(guò)其讀寫(xiě)分離功能來(lái)幫助實(shí)現(xiàn)讀寫(xiě)分離。引入數(shù)據(jù)訪(fǎng)問(wèn)代理的好處是源程序不需要做任何改動(dòng)就可以實(shí)現(xiàn)讀寫(xiě)分離,壞處是由于多了一層中間件做中轉(zhuǎn)代理,性能上會(huì)有所下降,數(shù)據(jù)訪(fǎng)問(wèn)代理也容易成為性能瓶頸。

ShardingSphere 讀寫(xiě)分離方案[1](摘自 shardingsphere 官網(wǎng))

ShardingSphere[2] 的讀寫(xiě)分離主要依賴(lài)內(nèi)核的相關(guān)功能。包括解析引擎和路由引擎。解析引擎將用戶(hù)的 SQL 轉(zhuǎn)化為 ShardingSphere 可以識(shí)別的 Statement 信息,路由引擎根據(jù) SQL 的讀寫(xiě)類(lèi)型以及事務(wù)的狀態(tài)來(lái)做 SQL 的路由。如下圖所示,ShardingSphere 識(shí)別到讀操作和寫(xiě)操作,分別會(huì)路由至不同的數(shù)據(jù)庫(kù)實(shí)例。

MSE 數(shù)據(jù)庫(kù)讀寫(xiě)分離能力

MSE 提供了一種動(dòng)態(tài)數(shù)據(jù)流量治理的方案,您可以在不需要修改任何業(yè)務(wù)代碼的情況下,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)分離能力。下面介紹 MSE 基于 Mysql 數(shù)據(jù)存儲(chǔ)通過(guò)的讀寫(xiě)分離能力。

前提條件

  • 應(yīng)用接入 MSE
  • 部署 Demo 應(yīng)用

在阿里云容器服務(wù)中部署 A、B、C 三個(gè)應(yīng)用,并且將應(yīng)用均接入 MSE 服務(wù)治理[3],用于增加具備數(shù)據(jù)庫(kù)治理能力的 Agent。

  • 創(chuàng)建 RDS 只讀實(shí)例[4]

我們需要?jiǎng)?chuàng)建 RDS 只讀實(shí)例,利用只讀實(shí)例滿(mǎn)足大量的數(shù)據(jù)庫(kù)讀取需求,增加應(yīng)用的吞吐量。

配置讀寫(xiě)分離規(guī)則

  • 我們需要配置以下環(huán)境變量來(lái)額外開(kāi)啟/配置數(shù)據(jù)庫(kù)的讀寫(xiě)分離能力

  • 我們可以通過(guò)控制臺(tái)配置弱讀請(qǐng)求的規(guī)則或者指定某些接口為弱讀請(qǐng)求
apiVersion: database.opensergo.io/v1alpha1
kind: AccessControlRule
metadata:
name: read-only-control-rule
labels:
app: foo
spec:
selector:
app: foo
target:
- resource:
path: '/getLocation'
controlStrategies:
weak: true

上述 OpenSergo 標(biāo)準(zhǔn)的規(guī)則表示 /getLocation 接口的請(qǐng)求為弱讀請(qǐng)求。

我們針對(duì)一些大數(shù)據(jù)量查詢(xún)、對(duì)延時(shí)不太敏感的業(yè)務(wù)請(qǐng)求可以配置為 weak 類(lèi)型

SQL 洞察

如上只需輕松的兩步我們就實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的讀寫(xiě)分離能力?;跀?shù)據(jù)庫(kù)讀寫(xiě)分離能力,配合 MSE 數(shù)據(jù)庫(kù)治理的 SQL 洞察我們可以快速定位 RT 過(guò)大的查詢(xún)請(qǐng)求,幫助我們進(jìn)一步分析 SQL 對(duì)我們數(shù)據(jù)庫(kù)穩(wěn)定性的影響。

我可以觀(guān)察應(yīng)用和資源 API 維度的 SQL 請(qǐng)求實(shí)時(shí)數(shù)據(jù)(細(xì)化至秒級(jí)),同時(shí) MSE 還提供了 SQL 的 topN 列表,我們可以一眼看出 RT 高,查詢(xún)返回值數(shù)據(jù)量大的 SQL 語(yǔ)句。

總結(jié)

本文詳細(xì)描述了 MSE 即將推出的數(shù)據(jù)庫(kù)治理能力矩陣中關(guān)于動(dòng)態(tài)讀寫(xiě)分離能力的介紹。通過(guò) MSE 提供的 SQL 洞察能力,結(jié)合我們對(duì)業(yè)務(wù)的理解,我們可以快速定位劃分接口請(qǐng)求為弱請(qǐng)求。將對(duì)主庫(kù)性能以及穩(wěn)定性影響大的讀操作,分流至 RDS 只讀庫(kù),可以有效降低主庫(kù)的讀寫(xiě)壓力,進(jìn)一步提升微服務(wù)應(yīng)用的穩(wěn)定性。

我們從應(yīng)用的視角出發(fā),抽象了我們?cè)谠L(fǎng)問(wèn)以及使用數(shù)據(jù)庫(kù)時(shí)的一些常見(jiàn)場(chǎng)景以及對(duì)應(yīng)的治理能力,整理了我們?cè)诜€(wěn)定性治理、性能優(yōu)化、提效等方面的實(shí)戰(zhàn)經(jīng)驗(yàn)。對(duì)于每一個(gè)后端應(yīng)用來(lái)說(shuō),數(shù)據(jù)庫(kù)無(wú)疑是重中之重,我們希望通過(guò)我們的數(shù)據(jù)庫(kù)治理能力,可以幫助到大家更好地使用數(shù)據(jù)庫(kù)服務(wù)。

最后提一下服務(wù)治理的標(biāo)準(zhǔn) OpenSergo:

Q:OpenSergo[5] 是什么
A:OpenSergo 是一套開(kāi)放、通用的、面向分布式服務(wù)架構(gòu)、覆蓋全鏈路異構(gòu)化生態(tài)的服務(wù)治理標(biāo)準(zhǔn),基于業(yè)界服務(wù)治理場(chǎng)景與實(shí)踐形成服務(wù)治理通用標(biāo)準(zhǔn)。OpenSergo 最大特點(diǎn)就是以統(tǒng)一一套配置/DSL/協(xié)議定義服務(wù)治理規(guī)則,面向多語(yǔ)言異構(gòu)化架構(gòu),做到全鏈路生態(tài)覆蓋。無(wú)論微服務(wù)的語(yǔ)言是 Java, Go, Node.js 或其它語(yǔ)言,無(wú)論是標(biāo)準(zhǔn)微服務(wù)或 Mesh 接入,從網(wǎng)關(guān)到微服務(wù),從數(shù)據(jù)庫(kù)到緩存,從服務(wù)注冊(cè)發(fā)現(xiàn)到配置,開(kāi)發(fā)者都可以通過(guò)同一套 OpenSergo CRD 標(biāo)準(zhǔn)配置針對(duì)每一層進(jìn)行統(tǒng)一的治理管控,而無(wú)需關(guān)注各框架、語(yǔ)言的差異點(diǎn),降低異構(gòu)化、全鏈路服務(wù)治理管控的復(fù)雜度


網(wǎng)站題目:數(shù)據(jù)庫(kù)治理利器:動(dòng)態(tài)讀寫(xiě)分離
文章位置:http://www.5511xx.com/article/djcpsod.html