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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
微服務(wù)治理熱門(mén)技術(shù)揭秘:動(dòng)態(tài)讀寫(xiě)分離

作者 |  十眠

我們從應(yīng)用的視角出發(fā)整理抽象了我們?cè)谠L問(wèn)、使用數(shù)據(jù)庫(kù)時(shí)場(chǎng)景的一些穩(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ù)。

MSE 數(shù)據(jù)庫(kù)治理完整解決方案

本文將詳細(xì)介紹 MSE 數(shù)據(jù)庫(kù)治理的熱點(diǎn)功能,動(dòng)態(tài)讀寫(xiě)分離的設(shè)計(jì)與實(shí)現(xiàn)。

1.讀寫(xiě)分離的概述

數(shù)據(jù)庫(kù)動(dòng)態(tài)讀寫(xiě)分離的常見(jiàn)場(chǎng)景:

  • 一個(gè)大客戶的請(qǐng)求過(guò)來(lái),查詢數(shù)據(jù)庫(kù)返回上萬(wàn)條幾百 M 的數(shù)據(jù),數(shù)據(jù)庫(kù)的 CPU 直接打滿。
  • 微服務(wù)應(yīng)用的某些業(yè)務(wù)并不是那么重要,卻存在大量查詢數(shù)據(jù)庫(kù)的邏輯,影響數(shù)據(jù)庫(kù)實(shí)例穩(wěn)定性,從而導(dǎo)致整體服務(wù)質(zhì)量的下降。
  • 在業(yè)務(wù)處理過(guò)程中,如果對(duì)數(shù)據(jù)庫(kù)的讀操作遠(yuǎn)多于寫(xiě)操作,那么在做系統(tǒng)性能優(yōu)化時(shí)就可以考慮引入讀寫(xiě)分離的方案,一方面只讀庫(kù)可以承擔(dān)主庫(kù)的壓力,另一方面能夠有效的避免由數(shù)據(jù)更新導(dǎo)致的鎖等待,提升微服務(wù)應(yīng)用的性能。
  • 隨著業(yè)務(wù)的增長(zhǎng),我們?cè)谝欢〞r(shí)機(jī)下需要對(duì)數(shù)據(jù)庫(kù)實(shí)例進(jì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ě)分離方案可以滿足阿里云上大多數(shù)公司的穩(wěn)定性治理、性能提升以及數(shù)據(jù)庫(kù)擴(kuò)容的需求。

如果了解讀寫(xiě)分離實(shí)現(xiàn)的同學(xué)一定會(huì)關(guān)注以下這些問(wèn)題:

  • MSE 是如何解決讀寫(xiě)分離對(duì)業(yè)務(wù)的侵入性?如何做到業(yè)務(wù)無(wú)需改動(dòng)一行代碼,即可具備讀寫(xiě)分離能力。
  • MSE 如何做到精細(xì)化動(dòng)態(tài)的讀寫(xiě)分離控制?即使我們不知道這個(gè)業(yè)務(wù)接口真實(shí)的 SQL 是什么,但我們已經(jīng)可以控制這個(gè)接口的讀 SQL 訪問(wèn)只讀實(shí)例。
  • MSE 是如何解決讀寫(xiě)分離帶來(lái)的一致性問(wèn)題?對(duì)于一致性敏感的業(yè)務(wù),如何實(shí)現(xiàn)一致性的保障,滿足業(yè)務(wù)在不同場(chǎng)景下對(duì)一致性級(jí)別的要求。

2.MSE 讀寫(xiě)分離技術(shù)揭秘

讀寫(xiě)分離也就是將數(shù)據(jù)庫(kù)拆分為主庫(kù)和從庫(kù),即主庫(kù)負(fù)責(zé)處理事務(wù)性的增刪改操作,從庫(kù)負(fù)責(zé)處理查詢操作的數(shù)據(jù)庫(kù)架構(gòu)。單單看讀寫(xiě)分離的概念,第一感覺(jué)就是對(duì)業(yè)務(wù)的侵入性一定不小,那么 MSE 是如何做到無(wú)侵入的呢?

(1)無(wú)侵入性:無(wú)需修改一行代碼

MSE 數(shù)據(jù)庫(kù)治理能力通過(guò) JavaAgent 技術(shù),動(dòng)態(tài)增加用戶的數(shù)據(jù)源,注入動(dòng)態(tài)讀寫(xiě)分離能力,支持運(yùn)行時(shí)動(dòng)態(tài)將弱讀請(qǐng)求路由至只讀實(shí)例。

MSE 在數(shù)據(jù)源層面實(shí)現(xiàn)了抽象,其中 DynamicConnection、DynamicStatement 會(huì)根據(jù)具體規(guī)則從而實(shí)現(xiàn) Master/Slaver 的切換,做到根據(jù) SQL 的讀寫(xiě)類型、事務(wù)的狀態(tài)以及用戶的業(yè)務(wù)規(guī)則來(lái)做 SQL 的路由,將符合條件的讀 SQL 請(qǐng)求轉(zhuǎn)發(fā)至 RDS 只讀實(shí)例中。

(2)精細(xì)化路由:按照請(qǐng)求條件、接口、SQL 多層次多條件

很多時(shí)候我們通過(guò)編寫(xiě) DAO 訪問(wèn)數(shù)據(jù)庫(kù),那么在一些復(fù)雜應(yīng)用的場(chǎng)景下,我們很可能只知道 DAO 接口,在一些復(fù)雜場(chǎng)景下我們只知道微服務(wù)的接口,內(nèi)部甚至搞不清楚到底調(diào)用的哪個(gè) DAO 接口、SQL 語(yǔ)句,甚至如果是運(yùn)維角色參與設(shè)計(jì),我們很可能不知道哪個(gè)微服務(wù)接口導(dǎo)致的讀請(qǐng)求導(dǎo)致數(shù)據(jù)庫(kù)抖動(dòng),我們只知道入口應(yīng)用的某個(gè) uid。那么我們?nèi)绾巫龅綄?duì)業(yè)務(wù)接口內(nèi)的讀請(qǐng)求路由至只讀實(shí)例呢?

MSE 數(shù)據(jù)庫(kù)治理提供了應(yīng)用層面完整的 callStack 信息,可以讓我們站在應(yīng)用的視角上清晰地看到哪些接口內(nèi)部執(zhí)行了哪些 SQL。

MSE 通過(guò)鏈路傳遞技術(shù),支持在入口微服務(wù)、微服務(wù)接口、DAO 層面標(biāo)記弱讀請(qǐng)求的標(biāo)記,支持標(biāo)記的當(dāng)前線程內(nèi)的 SQL 調(diào)用、當(dāng)前微服務(wù)內(nèi)的 SQL 調(diào)用、符合流量條件的請(qǐng)求鏈路級(jí)別的所有 SQL 調(diào)用等多個(gè)層面的弱讀標(biāo)記傳遞,最終傳遞給讀寫(xiě)分離組件的路由引擎進(jìn)行  SQL 的路由依據(jù)的判斷。

(3)強(qiáng)一致性模式:指定接口、事務(wù)

當(dāng)數(shù)據(jù)庫(kù)負(fù)載很高時(shí),例如對(duì)大表執(zhí)行 DDL(如加字段)操作或大批量插入數(shù)據(jù)的時(shí)候,延遲會(huì)非常嚴(yán)重,從而導(dǎo)致無(wú)法從只讀實(shí)例中讀取最新數(shù)據(jù)。MSE 提供了一些策略解決如上問(wèn)題,某些接口或者某些業(yè)務(wù)對(duì)一致性比較非常高,我們可以通過(guò)規(guī)則配置告訴 MSE 在特定場(chǎng)景下,某些讀接口標(biāo)記為強(qiáng)讀請(qǐng)求。MSE 內(nèi)部會(huì)通過(guò)一些機(jī)制保證讀寫(xiě)分離的強(qiáng)一致性效果。

(4)白屏化能力:通過(guò) AccessLog 實(shí)時(shí)感知讀寫(xiě)分離情況

有讀寫(xiě)分離能力,那么我們?nèi)绾沃雷x寫(xiě)分離的執(zhí)行情況,到底哪些應(yīng)用,哪些請(qǐng)求被分離至了只讀實(shí)例?MSE 白屏化能力提供了一套完整的 AccessLog。

  • 讀請(qǐng)求路由至只讀實(shí)例

  • 讀請(qǐng)求路由至主實(shí)例

3.總結(jié)

MSE 從應(yīng)用的視角出發(fā),結(jié)合微服務(wù)治理通用的技術(shù),MSE 推出的是完整的數(shù)據(jù)庫(kù)治理解決方案,從 SQL 洞察、SQL 流控降級(jí)與容錯(cuò)、連接池治理到數(shù)據(jù)庫(kù)灰度、動(dòng)態(tài)讀寫(xiě)分離。我們希望通過(guò)數(shù)據(jù)庫(kù)治理能力可以幫助用戶的微服務(wù)可以更好地使用數(shù)據(jù)庫(kù),降低數(shù)據(jù)庫(kù)使用的成本,提升數(shù)據(jù)庫(kù)訪問(wèn)的穩(wěn)定性。

MSE 的數(shù)據(jù)庫(kù)治理能力也需要更多更加深入的客戶場(chǎng)景與落地實(shí)踐,如果您對(duì) MSE 的數(shù)據(jù)庫(kù)治理能力感興趣,歡迎聯(lián)系我們,只有經(jīng)過(guò)客戶打磨的產(chǎn)品才會(huì)愈發(fā)歷久彌新。

在建設(shè)數(shù)據(jù)庫(kù)治理能力的同時(shí),我們也通過(guò) OpenSergo 在與社區(qū)共同建設(shè)數(shù)據(jù)庫(kù)治理的標(biāo)準(zhǔn)。


網(wǎng)站名稱:微服務(wù)治理熱門(mén)技術(shù)揭秘:動(dòng)態(tài)讀寫(xiě)分離
本文網(wǎng)址:http://m.5511xx.com/article/djeehhc.html