Java 微服務 分佈式數據訪問層 選型簡介

現在處於 PaaS、雲原生、Service Mesh 甚至中臺的時代,java微服務的基本組件選型都有哪些呢?

今天簡單介紹下分佈式數據訪問層(DAS)Java的選擇。

說是數據訪問層,其實最開始的訴求是“獨寫分離” , “分庫分表” 這些功能性需求。

真正開源而且好用的其實不多,分別介紹一個。

中間件分為很多類型,但是一般有2種思路。

第一種: 基於客戶端(client)實現 , 第二種: 基於代理(proxy)實現

就數據訪問層中間件來說,中小型、熱度低的比較多,但是普遍應用的卻不多。

一方面,作為一個很早就有需求的中間件,大廠都自研了,自研的不太可能公開。

另一方面,這部分的中間件相對苦活累活多,寫出來也不夠炫,因此不是很多人願意研究。

Java 微服務 分佈式數據訪問層 選型簡介

現在可以說是微服務2.0


數據訪問層可選組件舉例:


基於客戶端實現,目前最流行的是 Sharding-jdbc ,由噹噹開源。

現在做的很不錯,已改名為 Sharding-sphere,並且進入 apache 孵化,未來前景很好。

目前github 有 9.6k star (
https://github.com/apache/incubator-shardingsphere)

這種方式不需要額外搭建單獨的組件,直接在客戶端生效,相對簡單輕量,建議中小規模場景採用。


Java 微服務 分佈式數據訪問層 選型簡介


基於代理實現,目前基本沒得選,只能選擇阿里之前開源的Cobar演化來的 MyCAT。

有出過相關的書籍,並且做著聲稱社區也很活躍,而具體使用感受則見仁見智。

目前github 有 7.5k star(
https://github.com/MyCATApache/Mycat-Server)

這種方式運維成本是相對較高的,建議有一定運維能力的中型、大型團隊採用,且一定要重視,如果踩坑則要有一定的改造和自研能力。


Java 微服務 分佈式數據訪問層 選型簡介


分享到:


相關文章: