2009-09-22 62 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