NHibernate: разделение на чтение / запись - PullRequest
2 голосов
/ 29 июня 2010

Я хотел бы подключить NHibernate к конфигурации репликации главный-подчиненный MySQL, поэтому я хотел бы отправить записи в мастер, и читает в хозяин и раб. Это возможно? Я также планирую иметь балансировщик нагрузки чтобы сбалансировать чтения. (Ldirectord)

1 Ответ

1 голос
/ 29 июня 2010

под капотом nhibernate использует ado.net для подключения к источникам данных.Поэтому вам нужно посмотреть, как ado.net справится с этой ситуацией.

Но кроме того, я не думаю, что вы бы что-нибудь выиграли, если бы могли это сделать.

Некоторый фон: объекты в nhibernate привязаны к сеансам, которые привязаны к фабрикам сеансов, которые привязаны к 1 соединению.

Допустим, у вас был балансировщик нагрузки с ip 1 для чтения.И он уравновешивает базы данных на ip 2 и 3. И вы сразу нажимаете ip 2 для записи.

Таким образом, у вас есть

Ip     Use
1      Balancer
2      Read / Write
3      Read  

Если вы читаете объект с сеансом, связанным с соединением 1Вы должны загрузить этот объект, а затем сохранить и сбросить для записи в сеансе, связанном с соединением 2. В этот момент вы сделали 2 чтения и 1 запись.Принимая во внимание, что если вы используете одну фабрику сессий, то у вас есть чтение и запись (при условии, что один и тот же сеанс жив во время чтения и записи или что настроено кэширование 2-го уровня).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...