天天看点

Mycat安装部署之卧薪藏胆前沿环境介绍拓扑架构系统环境介绍系统安装关于9066端口的使用常见问题排除

最近项目要使用新的架构,后端数据库要使用Mycat中间件来实现,但是无没接触过啊,没接触过,那怎么办,卧薪藏胆来搞呗。。 接住这个bug,然后修改。

之前项目用的mysql是主从的架构,但是这样的架构有一些弊端:

主从同步总是出现问题

读写的压力全部积压到了master机器上了,导致系统出现瓶颈

系统扩容不是灵活

综上所述,故而决定使用mysql中间库Mycat

Mycat安装部署之卧薪藏胆前沿环境介绍拓扑架构系统环境介绍系统安装关于9066端口的使用常见问题排除

MyCat

Mysql-Master

Mysql-slave

192.168.1.186

192.168.1.202

Ubuntu14.04

MyCat 1.6

Mysql 5.5

1.Mysql主从安装

配置MySql主从就不在说明发,因为我们架构中对mysql的切换要求是当Master down机后Slave不在支持写功能,依旧当做Slave使用,并且提供myslq Read服务。所有要禁止slave的Write功能。

关于主从要说一下几点:

设置slave只读有如下几句语法:

因为开启了全局锁表所有的用户对数据库都不能进行写的操作,故而我们只能设置写权限的开关,即 set global read_only=1;

因为只关闭了普通用户的写权限,所以我们在给前端用户分发库权限的时候,一定要针对某个库分配权限,不要使用.的模式进行权限分发。

2.下载Mycat

3.安装Mycat

安装Mycat很容易,只需要解压,然后把解压的目录指定到$PATH全局环境变量中即可。

4.配置文件讲解

关于balance、writeType、switchType这三个参数重点讲解

为什么balance的值要等于1:

因为我们的目的是对mysql进行读写分离,而balance=1的时候,适用于的集群模式,也就是说M1-S1、M2-S2、M1-M2的时候M2、S1、S2都会处理读的请求,我们只有一对主从即M1-S1,所以所有的请求会转发的S1上;

我们writeType设置的值为0,所有所有的write请求在第一个writeHost没有down机的情况下,都会转发的第一个WriteHost上;

而我们switchType设置的是-1也就是说当主从复制的时候Master挂掉后不会进行主从的切换,那么从就不会来接替主的工作,这样写的请求就不会转发到从上;

综上三点所述,这样所有的读写请求就被自然的分开了。

heartbeat的参数是来设置检测后端mysql实例是否可以正常工作的设置,因为我们不需要进行主从切换的操作,所以使用了select user()语句进行检查后端实例的存活状态即可。

这个配置文件如果修改了后,不需要重启mycat服务,修改完后静等10秒钟服务会自动重新加载这个配置文件

里面有好多的注释设置,不用理睬,我们主要来看下面你这段设置。

name=“xinsir”这里的name设定的是用户名称

name=password标签中的123是设置的用户为xinsir的密码

name="schemas"标签中设定的参数是Schema.xml配置文件中的schema的名字,这里要一一对应不然启动的时候会报错,说找不到schema。

如果想设置只读用户,那么在这个标签下面再加一个标签为

即表示这个用户对应的schema逻辑库都是只读。

为了更好的看到mycat的工作状态我们开启日志级别为debug模式,这样打出的日志会更详细。

如果验证读写分离是否生效,我们可以观看logs/mycat.log文件。

1.ERROR:3099:java.long.IllegalArgument Exception:Invalid Deita Source:0

这个问题一般会有如下几个原因:

权限entity

mysql的错误连接数过多,刷新mysql状态(小编遇到了这个坑)

ip地址配置错误

mysql故障

2.启动不了

尝试脚本本地启动 start_nowrap

检测Warp-xxx的可执行文件

内存参数修改

配置文件格式

3.命令行可以连接程序无法连接报错0miuisecons ago.

一般是防火墙问题

4.程序连接一段时间报错

Last packet sent to the server was 76548 ms ago

可能是程序没有开启连接池定时检测机制,导致连接空闲超时被mysql关闭。

mycat连接池默认时间为30分钟(空闲连接)

而mysql连接池默认时间为8小时,二者相差甚多。

本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/2055967,如需转载请自行联系原作者