天天看点

Hibernate shard介绍

hibernate shards源自google的一个工程师小团队的20%项目。它提供一个对数据库水平分割的解决方案。

hibernate shards是对hibernate core进行了扩展,降低了复杂度。从概念上可以分成2部分。

1、基础逻辑

该部分对

• org.hibernate.Session

• org.hibernate.SessionFactory

• org.hibernate.Criteria

• org.hibernate.Query

进行了扩展。

• org.hibernate.shards.session.ShardedSession

• org.hibernate.shards.ShardedSessionFactory

• org.hibernate.shards.criteria.ShardedCriteria

• org.hibernate.shards.query.ShardedQuery

你可以很方便的使用就像普通的hibernate应用。

2、应用逻辑部分

提供三个接口,用来处理具体的实现策略

• org.hibernate.shards.strategy.selection.ShardSelectionStrategy

• org.hibernate.shards.strategy.resolution.ShardResolutionStrategy

• org.hibernate.shards.strategy.access.ShardAccessStrategy

ShardAccessStrategy:

获取数据的策略,目前已经包含的实现有:

SequentialShardAccessStrategy:顺序策略

ParallelShardAccessStrategy:并发策略

如果你想只取某一个库,目前你只能通过取具体的数据库的 SessionFactory。目前在策略里还不支持取其中的某个或某几个库,暂时是所有

数据库都参与。

ShardSelectionStrategy:

当一个新数据保存时,决定存储到那个数据库。

ShardResolutionStrategy:

当数据修改后,判断同步到哪一个数据库。 http://pppppp.iteye.com/blog/125315

继续阅读