使用mycat实现mysql读写分离
mycat在数据层的作用和nginx在应用层很像,都是代理后面实际的服务。mycat实现了mysql协议,对外看起来就是一个mysql数据库,可以和使用普通mysql一样进行操作
首先去官网下载对应操作系统的mycat,现在的稳定版是1.6
mycat还提供了一个mycat-web的服务用来可视化操作,还没研究
下载解压后修改conf中的schema.xml
这个配置是自顶向下的,理解起来应该从下往上看。dataHost对应实际的mysql集群,
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
show slave status
password="root"/>
password="root"/>
配置server.xml
utf8mb4
druidparser
root
lfz_schema
可以将log4j.xml的日志级别改为debug,观察mycat是不是真的做到读写分离了
mycat start,启动mycat
登录mycat mysql -uroot -proot -P8066 -h127.0.0.1登录mycat
我在云机器上无法启动mycat,查看日志发现jvm申请的内存太多了,可以修改wrapper.conf修改
wrapper.java.additional.5=-XX:MaxDirectMemorySize=256M
wrapper.java.additional.10=-Xmx256M
wrapper.java.additional.11=-Xms256M