**01
在資料庫之上與業務之下的新生态
一層貼近應用,一層貼近 DataBase。**
不同的行業、不同的使用者、不同的定位、不同的需求....如今的資料庫面臨着比過去更加複雜的資料應用場景以及愈發個性化和定制化的資料處理需求。愈發苛刻的生産環境,也在推動着不同的資料庫不斷将資料讀寫速度、延時、吞吐量等性能名額發揮到極緻。
久而久之,分工明确的資料應用場景逐漸導緻了資料庫市場的碎片化,且難以出現一款能夠完美适配所有場景的資料庫。在不同的業務場景下選擇不同的資料庫,已經成為一種常見的企業選型方法。
但同樣,這種百花齊放的資料庫形态,也會帶來『百花齊放』的問題。但從宏觀的角度來看,這些問題之間是存在共性的,是可以被抽離出來并形成一套事實标準的。如果能夠在這些百花齊放的資料庫之上建構能夠統一應用管理資料的平台層,就可以在屏蔽底層資料庫差異的前提下,按照固定标準來進行開發,這種标準化解決方案将會極大縮減使用者管理基礎資料設施的壓力和學習成本。
Apache ShardingSphere 就是位于這一層,通過複用原有資料庫的能力,能夠幫助技術團隊在此之上實作如分片、加密解密等增量能力的開發,且向下不需考慮底層資料庫的配置,向上又能夠屏蔽使用者感覺,進而快速建構起面向業務的資料庫直連能力,輕松管理大規模的資料叢集。
**02
如何踐行 Apache Way
Sharding**
ShardingSphere 可同時疊加使用多個功能來滿足使用者的多樣化需求。
随着業務體量的增大,單體資料庫難以支撐大體量業務時,就有必要對資料庫進行橫向擴充,這就必然要面臨着分布式管理的問題。ShardingSphere 通過在資料庫之上建構一層熱插拔功能層,并提供傳統資料庫的操作模式,屏蔽使用者對底層資料庫變化的感覺,賦予開發者使用單體資料庫的方式來管理大規模資料庫叢集的能力。其中,ShardingSphere 主要包含以下四種應用場景:
Sharding 政策
業務體量增大時,所面臨的資料分片壓力就會随之增加,所對應的分片政策相應就會被設計的更加複雜。ShardingSphere 能夠以靈活、易擴充的方式,以最低成本協助使用者在原本水準擴充之外做更多的分片政策,同時也支援自定義擴充的能力。
讀寫分離
通常情況下實作主從部署能夠有效緩解資料庫的壓力,但如果某一個叢集下的機器或庫表出現問題,無法進行正常讀寫操作,就會對業務造成比較大的影響。為避免業務不可用,通常需要開發者重新寫一套高可用的政策來實作讀寫庫表的主從切換。ShardingSphere 可以自動探索所有叢集的狀态,在第一時間發現請求不可靠、底層資料庫發生主從切換等問題,并可以在表層使用者沒有産生感覺的前提下自動恢複主從狀态。
Sharding Scaling
随着業務的增長,可能會需要對此前拆分過的資料叢集進行再一次拆分。ShardingSphere 配套的 Scaling 元件,隻需一條 SQL 指令就可以啟動任務,并在背景實時展示運作狀态。通過 Scaling 這種『管道』,使舊的資料庫生态和新的資料庫生态重新連接配接起來。
資料加解密
在資料庫的應用中,對于關鍵資料的加解密也是非常重要的一部分。如果原有系統監控能力不達标,部分敏感資料可能是以明文的狀态存儲的,後期需要對其進行加密處理,這是許多團隊普遍存在的問題。ShardingSphere 通過對這部分能力進行标準化并內建在中間件生态上,自動化使用者對新、舊業務的資料脫敏以及加解密的過程,整個過程實作了使用者層面的無感覺。同時支援多種内置的資料加解密/脫敏算法,使用者也可根據自身情況來自定義擴充相應的資料算法。
構造資料的接入神經:可插拔的 Database Plus 平台
面對各種各樣的需求以及使用場景,ShardingSphere 為不同領域的開發者提供了面向 Java 的 JDBC、面向異構的代理端以及面向上雲的 Sidecar 端這三種接入形式,使用者可以按具體需求來做選型,在原有叢集之上來做分片、讀寫分離、資料遷移等相關操作。
JDBC 接入:完全以 JDBC 的方式去使用,可以了解為一款增強的 JDBC 驅動程式,完全相容 JDBC 和各種 ORM 架構,不需額外的部署和依賴即能夠實作分布式管理、水準拓展、脫敏等一系列操作;
Proxy 接入:以模拟資料庫服務的形式,通過 Proxy 來管理底層真實的資料庫叢集,基本無需對業務進行改造;
雲上 mesh 接入:為 ShardingSphere 提供公有雲上的部署形式。在雲上,目前 SphereEx 已經加入了亞馬遜雲科技的雲創計劃,後續會在中國區和海外陸續在 Marketplace 與亞馬遜雲科技展開深度合作,為亞馬遜雲科技上的使用者提供更加強大的 Proxy 鏡像部署能力,共同為企業應用打造更加成熟的雲上環境。
如果你想開發小程式或者APP的話,可以通過第三方專業開發平台,來幫助你實作開發需求:
廈門在乎科技-專注
廈門小程式開發公司、app開發、網站開發