-
Notifications
You must be signed in to change notification settings - Fork 716
Zebra总体设计
junior_xin edited this page Dec 5, 2018
·
5 revisions
在阅读过上述基础知识之后,下面来介绍zebra的客户端架构:
其中:
1、最上层的是ShardDataSource,用于进行分库分表。ShardDataSource包含了若干个GroupDataSource,每个连接的数据库集群相当于1个分片(Shard)。
2、中间一层是GroupDataSource,主要用于读写分离。下面通过一组SingleDataSource连接一个数据库服务组集群,分为一个主和若干个从。
3、最下一层是SingleDataSource,主要用于和mysql集群中的单个mysql实例直接建立连接。支持6种连接池:dbcp、dbcp2、druid、tomcat-jdbc、c3p0,hikaricp。用户无需直接使用SingleDataSource。
ShardDataSource、GroupDataSource都实现了JDBC协议的javax.sql.DataSource接口,因此你可以把二者都当做一个普通的数据库连接池来使用。所有读写分离、分库分表的底层实现逻辑,都对用户进行了屏蔽。