mysql-proxy是通过什么连接到后端数据库的

mysql-proxy是通过什么连接到后端数据库的,第1张

MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信。它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。[1]

MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。

MySQL Proxy更强大的一项功能是实现“读写分离”,基本原理是让主数据库处理事务性查询,让从库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从库。

附mysql-proxy 的所有语法命令:

$ mysql-proxy --help-all

Usage:

mysql-proxy [OPTION...] - MySQL Proxy

Help Options:

-?, --help Show help options

--help-all Show all help options

--help-admin Show options for the admin-module

--help-proxy Show options for the proxy-module

admin module

--admin-address=<host:port>listening address:port of internal admin-server (default: :4041)

proxy-module

--proxy-address=<host:port>listening address:port of the proxy-server (default: :4040)

--proxy-read-only-backend-addresses=<host:port>address:port of the remote slave-server (default: not set)

--proxy-backend-addresses=<host:port>address:port of the remote backend-servers (default: 127.0.0.1:3306)

--proxy-skip-profiling disables profiling of queries (default: enabled)

--proxy-fix-bug-25371 fix bug #25371 (mysqld >5.1.12) for older libmysql versions

--proxy-lua-script=<file>filename of the lua script (default: not set)

--no-proxy Don't start proxy-server

Application Options:

-V, --version Show version

--daemon Start in daemon-mode

--pid-file=<file>PID file in case we are started as daemon

mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。 其他mysql开源中间件产品有:Atlas,cobar,tddl。你可以查阅一下相关信息和各自的优缺点。

分布式分表和读写分离的中间件,其实还有一些专注于分布式事务的、数据复制传输的等等,比如fescar,canal、outter等等。

主要功能:

1. 读写分离

2. 从库负载均衡

3. IP过滤

4. SQL语句黑白名单

5. 自动分表

Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。

Altas架构:

Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。

端口开启(contos|防火墙)

安装教程


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存