Hibernate общение с разными базами данных - PullRequest
1 голос
/ 16 ноября 2010

Мне нужно, чтобы мое приложение взаимодействовало с двумя разными базами данных, которые сами реплицируются (используя потоковую репликацию Postgres). Причина в том, что я хочу, чтобы все чтения происходили в одной базе данных, а записи - в другой.

Я использую hibernate в своем приложении. Есть ли какой-нибудь оригинальный способ добиться этого?

-Спасибо

edit: И да, пожалуйста, прокомментируйте, имеет ли смысл то, чего я пытаюсь достичь.

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Hibernate поддерживает шардинг.Посмотрите, поможет ли это вам: http://www.hibernate.org/subprojects/shards.html

Если вы используете пружину, то я знаю, что есть способ динамического переключения источника данных.Для получения дополнительной информации здесь

Это аналогичный вопрос от stackoverflow: Обработка нескольких баз данных с помощью NHibernate в одном приложении

Также тот же вопросв другом обсуждении на форуме: http://forum.springsource.org/showthread.php?t=12665

0 голосов
/ 17 ноября 2010

Раньше я просто создавал две фабрики сессий и использовал одну для работ только для чтения, а другую для работ чтения и записи. Я создаю фабрику чтения-записи, затем изменяю конфигурацию, чтобы иметь другого поставщика соединений, и добавляю перехватчик, чтобы перехватывать любые попытки модификации и собирать вторую.

Одной из проблем этого подхода является когерентность кэша L2, хотя это общая проблема как для кэширования Hibernate, так и для реплицируемых баз данных.

...