Escalar banco de dados mysql com hibernate + Vraptor

Pessoal estou com uma duvida sobre escalabilidade de banco de dados usando vraptor + hibernate

Tenho o seguinte modelo de replicação Master(para inserts e updates) + n Slaves(para selects)…

Mas se meu hibernate.cfg.xml so tem apenas 1 banco de dados

 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/banco</property>
        <property name="hibernate.connection.username">usuario</property>
        <property name="hibernate.connection.password">senha</property>

e uso o componente pronto

br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider

que injeta apenas uma Session relativa ao banco de dados MASTER no caso e seguindo o dao

@Component
public class EmailPanelDao implements Dao{

	private Session session;

	public EmailPanelDao(Session session) {
		this.session = session;
	}

        public EmailPanel load(Long id) {
                //Teoricamente ele teria que fazer isso de 1 SLAVE
		return (EmailPanel) this.session.load(EmailPanel.class, id);
	}

	public void insert(EmailPanel emailpanel) {
		//Teoricamente ele teria que fazer isso para o master
		this.session.save(emailpanel);
	}
}

Como ele distinguiria para qual banco de dados apontar…e se eu tiver N slaves???
Existe algo em java que torna isso transparente??
Obrigado pelas explicações…

Quando você faz um cluster de bancos você sempre aponta para o master. Na verdade quem faz todo o controle de replicação é ele, ou seja, de sua aplicação você precisa conhecer apenas o master e apontar seu persistence.xml para ele. Somente isso, nada mais.

Sim eu entendi que quem faz a replicação é o proprio banco quando tiver um insert update!!!

mas quando minha aplicação pede um SELECT o proprio MASTER ja pede pra um SLAVE ???
O MASTER nunca executa SELECT mesmo o hibernate.cfg.xml estar apontando pra ele???

Acho que vc quer saber como acessar + de 1 banco de dados ao mesmo tempo !!! Seria isso ???

Quando você roda um cluster de banco de dados você trabalha sempre acessando o master, e nunca os slaves. Ou seja, não importa quantos nós você tem, sempre os selects, updates, inserts serão no master, e a SessionFactory irá apontar para o master.