一般dateSource只能连接一个数据库,而用户一多,单独一个数据库服务器便不能扛住这么多的用户访问,在实践中我们发现网站的读操作是写操作的数倍,因此我们可以通过主从库的方式来实现主从库的读写分离,从主库里读数据,从从库里写数据,以减轻主库的负担。可自主研究spring关于datesource的这部分代码。
主从库
主从同步如何工作
主服务器对数据库的操作被记录到Binary log文件中,从服务器开启I/O thread从主服务其中读取Binary log文件的对数据库的操作并写入Relay log文件里。SQLthread从Relay log文件中读取操作并执行SQL语句,这样从服务器也有了对数据库的操作,从而实现了主从同步。至于为什么要这样设计,考虑到操作系统的队列实现,将操作记录缓存到Relay log文件中,减小了开销,并且不影响从服务器的工作。(参考生产者-消费者模式)