mysqlrouter的使用

mysqlrouter的使用,第1张

在vm的docker中使用 mysql router 实现 group replication 组复制 的读写分离和负载均衡

由于官方的docker镜像需要和InnoDb Cluster一起使用,这里自己创建镜像

group replication 组复制 搭建: https://www.jianshu.com/p/8187f72bcaa6

使用的ubuntu作为基础镜像, 需要添加国内源

Dockfile文件:

创建router镜像:

启动容器:

这里映射了3300和3301两个端口,连接到了 mysql group replication 使用的docker网络中,自定义的mysqlrouter配置挂载到容器中

然后再连接mysql服务器时, 只需使用router的端口即可, 使用 mysql workbench 连接3301端口, 每创建一个连接都会连接到下一个可用的mysql服务器上, 使用 select @@hostname查看当前连接到的mysql服务器的hostname就可以验证了

数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。对于大访问量的网站,一般会采用读写分离,比如ebay的读写比率是260:1,也就是大型的电子商务网站的。网上看到说采用读写分离有如下工具:1,oracle的logical standby2, Quest公司的SharePlex3, DSG公司的RealSyncMySQLReplication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力。那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave上。如果每个应用都需要来实现读写分离的算法,一则成本太高,二来如果slave增加更多的机器,应用就要随之修改。明显的,如果在应用和数据库间加一个专门用于实现读写分离的中间层,则整个系统的架构拥有更好的扩展性。MySQLProxy就是这么一个中间层代理,简单的说,MySQLProxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQLProxy是完全透明的,应用则只需要连接到MySQLProxy的监听端口即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8613530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存