读写分离数据库之MyCat
實習的時候,在一個項目當中,項目經理要求把原先的MySQL數據連接基于mycat來進行改造 。當時就在想MyCat是什么東西?為什么要用它呢?
*一、什么是MyCat:
MyCat是一個開源的分布式數據庫系統,是一個實現了MySQL協議的服務器,前端用戶可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生協議與多個MySQL服務器通信,也可以用JDBC協議與大多數主流數據庫服務器通信,其核心功能是分表分庫,即將一個大表水平分割為N個小表,存儲在后端MySQL服務器里或者其他數據庫里。
MyCat發展到目前的版本,已經不是一個單純的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流數據庫,也支持MongoDB這種新型NoSQL方式的存儲,未來還會支持更多類型的存儲。而在最終用戶看來,無論是那種存儲方式,在MyCat里,都是一個傳統的數據庫表,支持標準的SQL語句進行數據的操作,這樣一來,對前端業務系統來說,可以大幅降低開發難度,提升開發速度
二、那么為什么要用到MyCat呢?
例如操作系統是對各類計算機硬件的抽象。那么我們什么時候需要抽象?假如只有一種硬件的時候,我們需要開發一個操作系統嗎?
再比如一個項目只需要一個人完成的時候不需要leader,但是當需要幾十人完成時,就應該有一個管理者,發揮溝通協調等作用,而這個管理者對于他的上層來說就是對項目組的抽象。
同樣的,當我們的應用只需要一臺數據庫服務器的時候我們并不需要Mycat,而如果你需要分庫甚至分表,這時候應用要面對很多個數據庫的時候,這個時候就需要對數據庫層做一個抽象,來管理這些數據庫,而最上面的應用只需要面對一個數據庫層的抽象或者說數據庫中間件就好了,這就是Mycat的核心作用。
所以可以這樣理解:數據庫是對底層存儲文件的抽象,而Mycat是對數據庫的抽象。
————————————————
原文鏈接:https://blog.csdn.net/nxw_tsp/article/details/56277430
總結
以上是生活随笔為你收集整理的读写分离数据库之MyCat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: static unsigned shor
- 下一篇: linux cmake编译源码,linu