「分散式技術專題」去中心化服務與中心化服務的優劣
在雲端計算、大資料等新技術的帶動下,越來越多的企業需要對結構化的資料進行查詢、分析、處理和更新。同時,隨著創新業務的不斷增加,業務的複雜及龐大的體量必然會產生錯綜複雜且規模巨大的結構化資料,這些都必然迫使企業對資料庫的需求指向大規模、高可靠、高擴充套件及高效能。
什麼是資料去中心化?
資料去中心化過程也就是資料拆分的過程。依據服務劃分資料,將資料從主體資料剝離出來。
為什麼需要資料去中心化?
規範化資料模型是傳統關係型資料庫設計的核心,即透過三大正規化實現資料的有效儲存,併為開發人員提供一整套對資料的操作方式。規範化資料模型有利有弊,它為如何管理關係型資料提供了最佳的設計理念,但同時也限制了資料查詢的靈活性和高效性,特別是當查詢涉及多關聯場景時,會導致查詢效能嚴重低下。
規範化資料模型的另一個問題在於中心化思想,即把資料統一儲存在一箇中央資料庫中。當大量資料存在於同一個資料庫時會容易造成資料庫訪問瓶頸,從而影響資料訪問效能,併為系統可用性埋下隱患。資料去中心化場景、跨表查詢場景、單庫跨表查詢相對於來說場景比較簡單,不同業務共享幾張資料表,透過關聯查詢獲取需要是資料。應對這種查詢是將關聯查詢拆分為多個單表查詢,然後將結果資料進行動態重組,從而形成業務所需要的資料。
跨庫查詢場景
跨庫查詢說明不同資料庫之間的表也存在著連線查詢操作。針對該場景,基本的解決思路有兩種: ## 靜態資料 針對一些修改頻率不高、相對靜態的資料而言,可以採取資料複製的方式達到同一份資料在兩個資料庫中同時存在的效果,從而將跨庫查詢轉變為同一庫中的表查詢。
動態資料
對實時性要求比較高的資料,可以透過開放介面的方式實現兩個資料庫之間的資料整合效果。
技術耦合場景
技術耦合場景表現在使用了特定某種資料儲存容器相關的技術體系。對於關係型資料庫而言,儲存過程、觸發器等就是典型的資料庫工具級別的特有技術。由於每種資料儲存容器對這些具體技術的實現和支援方式都有所不同,所以在原則上我們的業務功能都不應該使用這些技術進行資料處理。如果有,那就堅決去掉。採用的方式也是將這些儲存過程、觸發器中所涉及的業務邏輯全部用程式碼重新實現一遍即可。
資料去中心化流程
資料去中心化的步驟:
程式碼分離
想要對資料庫進行拆分,首先要把運算元據庫的程式碼拆分出來。即把原本在單塊系統中的程式碼拆分成幾個組成部分。
重複資料庫模式
程式碼拆分完之後,對資料的訪問會形成兩種模式。一種是資料能夠隨著程式碼完成拆分,即這些資料不存在多個系統共同訪問的情況,那簡單把資料遷移出去供單個系統訪問即可。但是很多情況下,程式碼中充斥著跨表查詢,跨庫查詢和技術耦合場景,不能簡單進行資料拆分,所以作為一個過渡環節,我們可以把幾個系統公用的資料進行冗餘處理。
遷移資料讀寫操作
完成資料冗餘之後,將針對資料庫寫入和讀取操作做單獨抽離。一般寫入操作比較好抽離,因為插入只涉及單表。難度最大的為讀取的抽離,在沒有專門的資料拆分之前,同一份資料可能透過各種方式被很多業務所共享,會出現大量跨表查詢、跨庫查詢和技術耦合場景。
抽取服務化介面
在完成資料讀寫操作的遷移、去除資料定時同步機制之後,我們就可以對單塊系統中的程式碼進行拆分,從而實現服務化。所有的資料訪問透過服務化的介面進行。
以上為去中心化服務與中心化服務的優劣, 「分散式技術專題」是國產資料庫 hubble 團隊精心整編,專題會持續更新,歡迎大家保持關注。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2935105/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「分散式技術專題」基於Gossip協議的去中心服務分散式Go協議
- 以太坊上的服務並不是真正去中心化!中心化
- Automata Network用Rust編寫的去中心化的服務協議Rust中心化協議
- 「分散式技術專題」獨立儲存的優勢與劣勢分散式
- 前端技術 | react-router,去中心化式路由前端React中心化路由
- 「分散式技術專題」非獨立儲存的優勢與劣勢分散式
- [分散式]--Dubbo分散式服務框架-服務治理分散式框架
- 效能優化|Tomcat 服務優化優化Tomcat
- 搞懂分散式技術3:初探分散式協調服務zookeeper分散式
- Spring Cloud Consul:服務治理與配置中心SpringCloud
- consul 服務註冊中心
- 層次人才服務中心
- 分散式註冊服務中心etcd在雲原生引擎中的實踐分散式
- 【微服務技術專題】Netflix動態化配置服務-微服務配置元件變色龍Archaius微服務元件AI
- 服務治理->搭建服務註冊中心: Spring Cloud EurSpringCloud
- 微服務之分散式配置中心微服務分散式
- 什麼是去中心化?去中心化系統的優勢DAPP系統開發中心化APP
- DEX去中心化交易所|去中心化交易所APP系統定製開發技術中心化APP
- Spring Cloud(九)高可用的分散式配置中心 Spring Cloud Config 整合 Eureka 服務SpringCloud分散式
- Android效能優化篇之服務優化Android優化
- lms框架服務註冊中心框架
- 配置中心Nacos(服務發現)
- 層次人才服務中心99
- Java後端分散式系統的服務降級:優雅降級與服務熔斷Java後端分散式
- 簡單優化容器服務優化
- SOA與服務化框架框架
- 去中心化分散化社交網路的優缺點 -Jay Graber中心化
- 區塊鏈去中心化技術詳細介紹區塊鏈中心化
- 去中心化OPENSEA模式系統開發技術原理中心化模式
- 區塊鏈去中心化和傳統去中心化的區別區塊鏈中心化
- 阿里巴巴共享服務中心:淘寶四大服務中心阿里
- (五)spring cloud微服務分散式雲架構-配置中心服務化和高可用SpringCloud微服務分散式架構
- 微服務架構 | 3. 註冊中心與服務發現微服務架構
- 服務治理平臺-註冊中心
- 服務註冊中心之Eureka使用
- 避坑指南之財務共享中心的服務管理
- 「分散式技術專題」事務基礎及特性分散式
- 利用分散式賬本技術構建更加智慧的公共服務分散式