MyCat概念,作用,應用場景及原理

2021-10-11 07:46:41 字數 1171 閱讀 1668

mycat是乙個開源的分布式資料庫系統,是乙個實現了mysql協議的伺服器,前端使用者可以把它看作是乙個資料庫**,用mysql客戶端工具和命令列訪問,而其後端可以用mysql原生協議與多個mysql伺服器通訊,也可以用jdbc協議與大多數主流資料庫伺服器通訊,其核心功能是分表分庫,即將乙個大表水平分割為n個小表,儲存在後端mysql伺服器裡或者其他資料庫裡。

mycat發展到目前的版本,已經不是乙個單純的mysql**了,它的後端可以支援mysql、sql server、oracle、db2、postgresql等主流資料庫,也支援mongodb這種新型nosql方式的儲存,未來還會支援更多型別的儲存。而在終端使用者看來,無論是那種儲存方式,在mycat裡,都是乙個傳統的資料庫表,支援標準的sql語句進行資料的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提公升開發速度

目前雖然傳統關聯式資料庫存在一些列的先天弊端,但nosql資料庫又將其替代,但是如果傳統資料庫易於擴充套件和分拆就可以極大的避免單機單庫在資料增刪改查方面的缺陷。mycat就是為了解決資料庫的分拆和擴充套件而生的開源分布式資料庫系統。其最終的目標就是低成本地將現有的單機資料庫和應用平滑遷移到「雲」端,解決資料儲存和業務規模迅速增長情況下的資料瓶頸問題。

舉個簡單的例子

如果你只是開乙個小賣鋪(小專案) ,那麼你乙個人(資料庫)就可以了,但是如果你開乙個大型購物中心(大專案),如果不分部門的話,人員(資料)就很難管理,所以按人員不同分了很多部門(資料庫),但是光有部門,沒有乙個統一的管理者(mycat),那麼各個部門的配合和協調能力就大大降低了,超市的健康運營就會受到影響。而mycat就是這個管理者,它是對資料庫層做乙個抽象,來管理這些資料庫,而最上面的應用只需要面對乙個資料庫層的抽象或者說資料庫中介軟體就好了,這就是mycat的核心作用。 

所以可以這樣理解:資料庫是對底層儲存檔案的抽象,而mycat是對資料庫的抽象

mycat技術原理中最重要的乙個動詞是「攔截」,它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、快取分析等,然後將此sql發往後端的真實資料庫,並將返回的結果做適當的處理,最終再返回給使用者

Mycat原理 應用場景

mycat的原理並不複雜,複雜的是 如果 也不複雜,那麼早就成為乙個傳說了。mycat的原理中最重要的乙個動詞是 攔截 它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析 如分 片分析 路由分析 讀寫分離分析 快取分析等,然後將此sql發往後端的真實資料庫,並將返回的結果做適當的...

Mycat原理 應用場景

mycat原理 mycat的原理並不複雜,複雜的是 如果 也不複雜,那麼早就成為乙個傳說了。mycat的原理中最重要的乙個動詞是 攔截 它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析 如分 片分析 路由分析 讀寫分離分析 快取分析等,然後將此sql發往後端的真實資料庫,並將返...

Mycat原理 應用場景

mycat原理 mycat的原理並不複雜,複雜的是 如果 也不複雜,那麼早就成為乙個傳說了。mycat的原理中最重要的乙個動詞是 攔截 它攔截了使用者傳送過來的sql語句,首先對sql語句做了一些特定的分析 如分 片分析 路由分析 讀寫分離分析 快取分析等,然後將此sql發往後端的真實資料庫,並將返...