京東數(shù)科高級DBA潘娟:Apache ShardingSphere的架構、特性
三、功能介紹
仔細觀察ShardingSphere的框架,我們不難發(fā)現(xiàn)中間件左側(cè)的Sharding-Scaling,它是一個提供給用戶的通用的ShardingSphere數(shù)據(jù)接入遷移,及彈性伸縮的調(diào)度平臺。
JDBC的核心功能就是Orchestration,即編排治理,配置集中化與動態(tài)化、數(shù)據(jù)治理。ShardingSphere提供了界面治理模塊——Sharding-UI,可以快速維護Sharding-Proxy集群,方便用戶一鍵式的操作。
如上圖所示,從研發(fā)的角度來看Apache ShardingSphere的框架,最上面的接入端有JDBC和Proxy,中間層的核心功能是數(shù)據(jù)分片、分布式事務、數(shù)據(jù)庫治理,最下層是數(shù)據(jù)庫集群。
其實,Sharding是Apache ShardingSphere的立足之本。除了分庫分表,它還還支持Encrypt(脫敏)和Shadow(影子庫),所有壓測的數(shù)據(jù)都會分配的影子庫中。Sharding最核心的還是底層四個模塊來做支撐。
我們必須要解析SQL,才能理解用戶需要什么。Parser(解析器)已經(jīng)重構過很多遍,為了實現(xiàn)自主可控,保證高效性和正確性。除此之外,Router代表著路由,Rewriter改寫一些SQL,Executor做并行的控制,提高整體效率。
分布式事務主要有兩個方面,ACID強一致性事務和BASE柔性事務。值得一提的是,ShardingSphere分為自研的分布式數(shù)據(jù)庫(DTX)、對接其他公司的解決方案兩部分。對于用戶來說,他無需過多了解ShardingSphere,就可以擁有多種分布式事務的選型,這其實是一種非常有意思的方式。
ShardingSphere不只是一個分布式數(shù)據(jù)庫的原因在于,它的Orchestration模塊提供了很多功能,比如在線變更、分片規(guī)則的在線推送,以及限流和熔斷等。用戶在了解分片的基礎上,可以慢慢去探索這個開放生態(tài),找到自己想要的功能。

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字