2009-09-22 67 views
1

我想知道为使用碎片的Web应用程序实现数据库连接池的最佳方法。从我所能告诉的大多数(所有?)开源实现只支持单个数据库。至少,我还没有找到支持碎片的东西。用于多个数据库(碎片)的Java数据库连接池

而且,即使我用碎片并不是所有的数据库具有相同的架构,我将有其他数据库了。我不确定是否重要。

,我可以想出迄今唯一的解决办法是编写在多个和不同的池的基础上位于的层。每个独立的池可以是任何可用的单一数据库实现。

这是否已经有解决方案?否则最好的技术是什么?

在此先感谢,

Stephen。

回答

3

我不认为有一个支持分片的开源实现。也许,没有真正的需要,因为在多个数据库池之上创建一个图层并不难。它只需要一个分片映射函数(例如散列函数)和一个管理器类来跟踪多个池。

如果你担心,并非所有的数据库具有相同的架构,你可以把其他架构跟踪配置到您的管理器类,所以它知道它的碎片可以用来架构。也就是说,您需要将模式追踪到数据库池以外的分片信息。这是不是真的太多额外的工作,因为你所需要的碎片配置反正来确定如何从池中拉右碎片

好运

+0

这或多或少是我想象的。当我提到并非所有数据库都具有相同的模式时,我的意思是我还会有其他非分片数据库。但我认为上述基本概念是正确的。谢谢。 – Steve 2009-09-22 19:28:08

+0

我一定错过了Hibernate Shard。如果你已经为你的分片数据库使用了hibernate,它看起来是一个不错的选择。鉴于它是测试版,您可能需要等待它首先进行生产。 – 2009-09-26 00:38:38

1

(如用户ID国防部10 = 1应碎片1拉)什么是你目前使用的技术堆栈?我知道Hibernate有一个分片项目,但我没有使用它,只是听了一些关于它的播客。

关于它的更多信息,可以发现here。此外,前面提到的播客可以被发现here

播客解释了一般与分片数的问题,一些Hibernate插件已经照顾,然后解释了他们预期的路径前进的突飞猛进的。希望有一点帮助!

+0

谢谢。我将对Hibernate Shards有一个很好的看法。乍一看,它看起来很有希望。 – Steve 2009-09-22 19:25:05