Amoeba for MySQL致力于MySQL的分布式數據庫前端代理層,它主要在應用層訪問MySQL的時候充當query 路由功能,專注 分布式數據庫 proxy 開發。座落與Client、DB Server(s)之間。對客戶端透明。具有負載均衡、高可用性、Query過濾、讀寫分離、可路由相關的query到目標數據庫、可并發請求多臺數據庫合并結果。 在Amoeba上面你能夠完成多數據源的高可用、負載均衡、數據切片的功能。目前在很多企業的生產線上面使用。
那么Amoeba for mysql 對客戶端程序來說是什么呢? 我們就當它是mysql吧,它是一個虛擬的mysql,對外提供mysql協議。客戶端連接amoeba就象連接mysql一樣。見下圖:
Amoeba for Aladdin
與Amoeba for MySQL 類似,客戶端連接Aladdin必須用MySQL 協議,之所以用MySQL協議,主要是想借助mysql使用的廣泛程度以及對各種開發語言的支持。Aladdin后端可以同時連接各種數據庫。只要這些數據庫提供jdbc驅動。aladdin的出現可以解決企業在數據庫整合上面提供積極的幫助。使用者不需要知道后端到底使用了什么類型的數據庫、數據庫的物理地址什么,這些由aladdin來分析sql語句,并且獲得相應的要查詢的表跟條件,然后由這些規則結合這些條件進行路由到相關的物理數據庫。
隨著NoSQL的日益興起,mongoDB作為一款nosql數據庫以其優異的性能得到了廣泛的關注。可以說,mongoDB填補了傳統關系型數據庫以及傳統鍵值型數據庫的空白,并且兼具兩者優秀特質。Amoeba for MongoDB將提供與Amoeba for MySQL類似的,完全自主、可控的切分方式、并嘗試完成同樣的auto sharding的功能。 基于Amoeba框架,跟以往的產品一樣具備心跳檢測、負載均衡、故障轉移、查詢聚合等功能,保留了之前的配置方式,只要熟悉amoeba其中一款產品的配置,那么上手將非常容易的。