包含标签:规则 的文章
  • MySQL中间件之ProxySQL(7):详述ProxySQL的路由规则

    1.关于ProxySQL路由的简述 当ProxySQL收到前端app发送的SQL语句后,它需要将这个SQL语句(或者重写后的SQL语句)发送给后端的MySQL Server,然后收到SQL语句的MySQL Server执行查询,并将查询结果返回给ProxySQL,再由ProxySQL将结果返回给客户端(如果设置了查询缓存,则先缓存查询结果)。 ProxySQL可以实现多种方式的路由:基于ip/port、username、schema、SQL语句。其中基于SQL语句的路由是按照规则进行匹配的,匹配方式有hash高效匹配、正则匹配,还支持更复杂的链式规则匹配。 本文将简单演示基于端口、用户和schema的路由,然后再详细介绍基于SQL语句的路由规则。不过需要说明的是,本文只是入门,为后面ProxySQL的高级路由方法做铺垫。 在阅读本文之前,请确保: 已经理解ProxySQL的多层配置系统,可参考:ProxySQL的多层配置系统 会操作ProxySQL的Admin管理接口,可参考:ProxySQL的Admin管理接口 已经配置好了后端节点、mysql_users等。可参考:ProxySQL管理后端节点 如果想速成,可参考;ProxySQL初试读写分离 本文涉及到的实验环境如下: 角色 主机IP server_id 数据状态 Proxysql 192.168.100.21 null 无 Master 192.168.100.22 110 刚安装的全新MySQL实例 Slave1 192.168.100.23 120 刚安装的全新MySQL实例 Slave2 192.168.100.24 130 刚安装的全新MySQL实例 该实验环境已经在前面的文章中搭建好,本文不再赘述一大堆的内容。环境的搭建请参考前面给出的1、2、3。 2.ProxySQL基于端口的路由 我前面写了一篇通过MySQL Router实现MySQL读写分离的文章,MySQL Router实现读写分离的方式就是通过监听不同端口实现的:一个端口负责读操作,一个端口负责写操作。这样的路由逻辑非常简单,配置起来也很方便。 虽然基于端口实现读写分离配置起来非常简单,但是缺点也很明显:必须在前端ap……

    SE_You 2024-03-21
    73 0 0