NHibernate: lettura / scrittura splitting
-
01-10-2019 - |
Domanda
Vorrei collegare NHibernate a una configurazione di MySQL replica master-slave, quindi vorrei inviare scrive al master, e legge al master e slave. È possibile? Sto anche pensando di avere un bilanciamento del carico per bilanciare la legge. (Ldirectord)
Soluzione
sotto il cofano, usi NHibernate ADO.NET per connettersi a origini dati. Così si avrebbe bisogno di guardare a come ADO.NET gestisce questa situazione.
, ma in aggiunta, non credo che ci si guadagna nulla se si potrebbe fare questo.
Alcuni retroscena: Oggetti in NHibernate sono legati a sessioni, che sono legati alle fabbriche sessione, che sono legati a 1 collegamento.
esempio di farvi aveva un bilanciatore di carico con ip 1 per legge. E equilibra i database su IP di 2 e 3. E ti ha colpito ip 2 direttamente in scrittura.
In modo da avere
Ip Use
1 Balancer
2 Read / Write
3 Read
Se si legge un oggetto con una sessione legata alla connessione 1, è necessario caricare l'oggetto e quindi salvare e filo di scrivere su una sessione legata alla connessione 2. A quel punto, avete fatto 2 lettura di e 1 in scrittura. Mentre se si utilizza uno stabilimento sessione allora avete una lettura e una scrittura (supponendo che la stessa sessione è viva attraverso la lettura e la scrittura, o che la cache di 2 ° livello è di impostazione).