mycat中的核心概念
mycat中的核心概念
1.資料庫中介軟體
mycat 是乙個開源的分布式資料庫系統,但是由於真正的資料庫需要儲存引擎,而 mycat 並沒有 儲存引擎,所以並不是完全意義的分布式資料庫系統。mycat 是資料庫中介軟體,就是介於資料庫與應用之間,進行資料處理與互動的中間服務。有了資料庫中介軟體,應用只需要集中與業務處理,大量的通用的資料聚合,事務,資料來源切換都由中介軟體來處理,中介軟體的效能與處理能力將直接決定應用的讀寫效能,所以一款好的資料庫中介軟體至關重要。
2.邏輯庫(schema)
對實際應用來說,並不需要知道中介軟體的存在,業務開發人員只需要知道 資料庫的概念,所以資料庫中介軟體可以被看做是乙個或多個資料庫集群構成的邏輯庫。
3.邏輯表(table)
1)邏輯表
既然有邏輯庫,那麼就會有邏輯表,分布式資料庫中,對應用來說,讀寫資料的表就是邏輯表。邏輯表,可 以是資料切分後,分布在乙個或多個分片庫中,也可以不做資料切分,不分片,只有乙個表構成。
2)分片表
分片表,是指那些原有的很大資料的表,需要切分到多個資料庫的表,這樣,每個分片都有一部分資料,所 有分片構成了完整的資料。 例如在 mycat 配置中的 t_node 就屬於分片表,資料按照規則被分到 dn1,dn2 兩個分片節點(datanode) 上。
3)非分片表
乙個資料庫中並不是所有的表都很大,某些表是可以不用進行切分的,非分片是相對分片表來說的,就是那 些不需要進行資料切分的表。 如下配置中 t_node,只存在於分片節點(datanode)dn1 上。
4)er 表
關係型資料庫是基於實體關係模型(entity-relationship model)之上,通過其描述了真實世界中事物與關 系,mycat 中的 er 錶即是**於此。根據這一思路,提出了基於 e-r 關係的資料分片策略,子表的記錄與所關 聯的父表記錄存放在同乙個資料分片上,即子表依賴於父表,通過表分組(table group)保證資料 join 不會跨 庫操作。 表分組(table group)是解決跨分片資料 join 的一種很好的思路,也是資料切分規劃的重要一條規則。
5)全域性表
乙個真實的業務系統中,往往存在大量的類似字典表的表,這些表基本上很少變動,字典表具有以下幾個特 性: • 變動不頻繁 • 資料量總體變化不大 • 資料規模不大,很少有超過數十萬條記錄。 對於這類的表,在分片的情況下,當業務表因為規模而進行分片以後,業務表與這些附屬的字典表之間的關 聯,就成了比較棘手的問題,所以 mycat 中通過資料冗餘來解決這類表的 join,即所有的分片都有乙份資料的拷 貝,所有將字典表或者符合字典表特性的一些表定義為全域性表。 資料冗餘是解決跨分片資料 join 的一種很好的思路,也是資料切分規劃的另外一條重要規則。
4.分片節點(datanode)
資料切分後,乙個大表被分到不同的分片資料庫上面,每個表分片所在的資料庫就是分片節點 (datanode)。
5.節點主機(datahost)
資料切分後,每個分片節點(datanode)不一定都會獨佔一台機器,同一機器上面可以有多個分片資料庫, 這樣乙個或多個分片節點(datanode)所在的機器就是節點主機(datahost),為了規避單節點主機併發數限 制,盡量將讀寫壓力高的分片節點(datanode)均衡的放在不同的節點主機(datahost)。
6.分片規則(rule)
前面講了資料切分,乙個大表被分成若干個分片表,就需要一定的規則,這樣按照某種業務規則把資料分到 某個分片的規則就是分片規則,資料切分選擇合適的分片規則非常重要,將極大的避免後續資料處理的難度。
7.全域性序列號(sequence)
資料切分後,原有的關聯式資料庫中的主鍵約束在分布式條件下將無法使用,因此需要引入外部機制保證資料 唯一性標識,這種保證全域性性的資料唯一標識的機制就是全域性序列號(sequence)。
8.多租戶
多租戶技術或稱多重租賃技術,是一種軟體架構技術,它是在**與實現如何於多使用者的環境下共用相同的 系統或程式元件,並且仍可確保各使用者間資料的隔離性。在雲計算時代,多租戶技術在共用的資料中心以單一系 統架構與服務提供多數客戶端相同甚至可定製化的服務,並且仍然可以保障客戶的資料隔離。目前各種各樣的雲 計算服務就是這類技術範疇,例如阿里雲資料庫服務(rds)、阿里雲伺服器等等。 多租戶在資料儲存上存在三種主要的方案
1)獨立資料庫
這是第一種方案,即乙個租戶乙個資料庫,這種方案的使用者資料隔離級別最高,安全性最好,但成本也高。 優點: 為不同的租戶提供獨立的資料庫,有助於簡化資料模型的擴充套件設計,滿足不同租戶的獨特需求; 如果出現故障,恢復資料比較簡單。 缺點: 增大了資料庫的安裝數量,隨之帶來維護成本和購置成本的增加。 這種方案與傳統的乙個客戶、一套資料、一套部署類似,差別只在於軟體統一部署在運營商那裡。如果面對 的是銀行、醫院等需要非常高資料隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產品 走低價路線,這種方案一般對運營商來說是無法承受的。
2)共享資料庫,隔離資料架構
這是第二種方案,即多個或所有租戶共享 database,但是每個租戶乙個 schema。 優點: 為安全性要求較高的租戶提供了一定程度的邏輯資料隔離,並不是完全隔離;每個資料庫可以支援更多的租戶數量。 缺點: 如果出現故障,資料恢復比較困難,因為恢復資料庫將牽扯到其他租戶的資料; 如果需要跨租戶統計資料,存在一定困難。
3)共享資料庫,共享資料架構
這是第三種方案,即租戶共享同乙個 database、同乙個 schema,但在表中通過 tenantid 區分租戶的數 據。這是共享程度最高、隔離級別最低的模式。 優點: 三種方案比較,第三種方案的維護和購置成本最低,允許每個資料庫支援的租戶數量最多。 缺點: 隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量; 資料備份和恢復最困難,需要逐表逐條備份和還原。 如果希望以最少的伺服器為最多的租戶提供服務,並且租戶接受以犧牲隔離級別換取降低成本,這種方案最 適合。
三月 30, 2017. created by xmind
mycat是什麼 詳解Mycat核心概念和名詞
mycat是什麼?乙個徹底開源的,面向企業應用開發的大資料庫集群 支援事務 acid 可以替代mysql的加強版資料庫 乙個可以視為mysql集群的企業級資料庫,用來替代昂貴的oracle集群 乙個融合記憶體快取技術 nosql技術 hdfs大資料的新型sql server 結合傳統資料庫和新型分布...
RabbitMQ 核心概念入門
在當今世界,rabbitmq用於大型組織的初創企業。publisher 通常是乙個amqp客戶端應用程式,它生成訊息並將其 到amqp exchange。由於協議與語言無關,因此可以使用任何程式語言來編寫發布者 生產者。message 由發布者製作,具有所有必要的資訊,例如源,標頭,屬性和路由資訊等...
Vuex的核心概念入門必看
以下內容可直接用編輯器開啟檢視 doctype html en utf 8 viewport content width device width,initial scale 1.0 vuex的使用 title head 1.元件之間共享資料的方式 父元件向子元件傳值 v bind屬性繫結 子元件向...