在我们的系统中,使用nginx负载均衡----提高用户的访问量,将用户的请求转向到各个子系统。
在前台系统中,使用redis缓存----极大的提高用户的访问效率。
在个子系统中间,采用松耦合的rabbitMQ消息队列----来传递信息,使我们的系统框架可以满足高并发。
在后端数据库访问的时候,一台mysql数据库成为了系统访问的瓶颈。
一旦mysql的服务出现问题(数据库查询过多–造成数据库响应缓慢)----采用读写分离的方式。
这时我们采用springAOP的面向切面的方式自定义一个切面,
在所有数据库操作时----先被我们的切面拦截,在切面中----实现了动态切换数据源,
将读写的操作进行分离----写操作配置一个数据源,读操作配置两个数据源
(读的操作》》写的操作)读操作占80%~90%
利用面向切面----可以获取到访问数据库请求的方法名,通过方法名----判断他是读操作还是写操作
我们有一个方法名的约定:query select get 查询操作
insert update delete 写操作
这样就可以通过方法名转向到数据源(两台从机器 利用hash一致性来判断写在哪一台)
如果访问量再大的话–会造成mysql宕机无法为用户提供服务,这将造成无法挽回的后果甚至经济损失
采用主从复制的方式,我们搭建三台服务器的集群,将一台服务器作为主,两台服务器作为从。
(我们在主服务器上----配置打开写二进制文件,这样才能实现主从复制,)
在从服务器上–执行绑定的sql语句,指定主服务器的IP,端口,用户名,密码,日志文件名称,位置
启动我们的从服务,
如果配置成功,在主服务器的mysql上增加数据库,增加表,修改表结构,增加数据,修改数据,
这时候从数据库的数据都会–与主数据库同步
这样当主服务器宕机时,这时候可以将数据源切换到某一个从服务器,将他的配置改为主
(先停止当前从的复制服务,再开启二进制文件写操作,然后将另一个从绑定到这个新的主服务器上,改变数据源连接指向这个新的主服务器,重启服务)