周六将编写内容,敬请期待..
在这之前,我先把上篇文章里面的效果图展示下,不知道大家是否和我完成的效果一样!
上图中,右侧是运行中的5节点mysql集群和2节点的haproxy集群,在每个haproxy节点中还运行着一个keepalived服务,同时在宿主机上也运行了一个keepalived服务,虚拟ip和宿主机ip保持 一致(也可以自己定义其它ip);左侧是用navicat连接了5节点mysql服务和keepalived,这里为了演示效果,实际应用中,web应用只需要连接keepalived暴露的3306即可,和使用单节点mysql一样使用即可。接下来,我们看一下haproxy提供的监控页面:
通过监控页面,我们可以时时看到每个节点健康状况,现在每个节点背景色都是绿色的,如果出现了严重不可用的问题,对应节点背景颜色会显示红色,关于上次文章的复习就到这里。敬请期待本次mycat实战,如何实现高性能mysql集群。
大家久等了!今天也要加油鸭!
在前面我们已经解决了数据库单节点问题,可靠的pxc集群提供了高可用存储服务,接下来我来讲解如何通过数据库中间件
mycat来实现数据库的垂直拆分和水平拆分。
在项目初期,我们把所有的表都放在一个数据库中,随着业务增长,数据库性能出现瓶颈,于是我们把表进行按功能划分,例如:用户模块,订单模块,车辆管理,权限管理等单独拆分出来作为独立的数据库,以便提升业务处理能力。
在本次演示中,我创建了4个容器来分别代表4个业务对应的数据库,分别是:db-customer,db-vehicle,db-rbac,db-order
在实际项目中,这4个db也对应4个web服务,这里不做介绍了。
在这4个数据库中,我分别建了一张表:customer_login,vehicle_info,rbac_menu,order
通过navicat连接到这4个数据库
基础数据库有了,下面我们开始在另外一台服务器上安装mycat服务
通过weget直接下载解压即可:
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
由于mycat是java开发的,因此依赖java环境,没有配置java环境的,自行配置
这里面是我配置好的java环境变量,mycat环境变量,可以看出我的mycat是解压在/usr/local/目录下的
进入mycat/bin目录下
mycat提供两种启动方式,看到上面两个箭头了吗,这里我选择mycat 命令方式:
启动:mycat start
停止:mycat stop
启动前我们需要修改一下mycat内存配置参数
如图所示,这里我设置为1G,根据自己服务器内存大小合理设置,我的服务器是2G内存
修改完毕,保存,退出,启动mycat
查看启动结果
查看wrapper.log日志,如果最后出现
MyCAT Server startup successfully. see logs in logs/mycat.log
说明启动成功!接下来我们是垂直拆分的关键步骤,配置逻辑库和物理库的关系
在conf目录下我讲4个配置文件
日志配置:log4j2.xml
水平拆分规则:rule.xml
mycat对外曝露的逻辑库配置:server.xml
mycat对内物理库配置:schema.xml
由于每个文件的配置参数很多,我这里只是抛砖引玉,不做过多介绍,大家通过本次练习后自己下去了解。
通过以上2个文件的配置,数据库的垂直拆分简单实现就完成了,我们启动mycat服务,用navicat连接8066端口
对开发人员来说,直接连接mycat189上的数据库,和之前一样操作。这就是所谓的对开发透明,在此之前我们通过在应用程序中配置多数据源来实现垂直拆分,十分不便。好了,休息一会儿,玩把农药,后面再说水平拆分是怎么实现的。