我們目前正在從事web項目的設計,我們必須使用java堆棧。Java堆棧 - ORM與數據庫的可擴展性
考慮到有限的負載,我們可以使用單個數據庫(在我們的例子中爲PostgreSQL)。在這種情況下,像Hibernate這樣的ORM將是一個很好的決定,因爲對象/關係問題始終是最耗費時間和成本的一個。這是使用ORM工具的全部理由 - 便宜,節省很多時間。
但是,這個問題是,我們期待在數據庫層中進行分片和主/從(讀/寫)複製,這對於ORM是一個真正的問題(至少據我所知)。
如果我錯了,請糾正我,我們可以使用java堆棧有一個好的ORM工具。根據鏈接,我知道有一個名爲Hibernate Shards的項目可以解決這個問題,但是它從未通過beta版本,並且在2007年停止了它的開發。
使用常規的Hibernate與分佈式2級高速緩存,我們可以使用節點
與業務邏輯的數量,但這不會解決數據庫的可擴展性的問題,我們仍然可以只使用一個數據庫應用。底線:開源/免費ORM是否適合我們的情況(Java堆棧),還是應該自己實施,即使成本相當高,以提供數據庫可伸縮性以及其他可能的好處。
謝謝!
你在考慮水平分割還是垂直分割? –
鮑里斯,我們考慮水平分割。坦率地說,我不知道「垂直分片」這個詞,你是說垂直分區? –
好的,在這種情況下,您應該可以使用Hibernate的MultiTenant sessionfactory - 您可以爲每個數據庫分配一個連接源,然後選擇使用哪一個。 –