发现新玩艺儿—-MySQL Proxy

MySQL Proxy 是一款新颖的代理工具,不仅提供简单的客户端-服务器连接代理功能,还支持查询拦截、过滤、重写等高级特性。通过这些特性,可以实现如故障转移、负载均衡等复杂操作,极大地扩展了 MySQL 的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原贴:http://dawnh.net/software/241/new-software-mysql-proxy/

发现新玩艺儿—-MySQL Proxy

database mysql proxy

今天看到了这么一个新项目–MySQL Proxy,貌似最近比较热门。简单来说就是一个从MySQL Client到Server的一个代理。可能有人认为MySQL这种连接方式不应该会用到代理,因为一般来说都喜欢把MySQL Server放到后端,用内网圈起来,这样一方面保证安全,另一方面用Local  Ethernet来避免不稳定因素较多的Internet连接,因此基本没有代理这个角色出现的机会。然而,假如这个代理不仅仅是一个代理,而是一个能“懂得”连接双方传送内容,并有可能会对双方内容加以控制甚至干涉的一个角色呢?还有没有人觉得他没用?联想一下Squid之于HTTP Client和HTTP Server所能起到的作用,是不是能想到更多了呢?

是的,MySQL Proxy就是这么一个玩艺儿。代理仅仅是其最不值一提的功能,让人激动的功能都是建立在代理这个前提之上,能实现的更好玩的东西,例如以下:

Query Interception

Query Filtering

Query Rewriting

Macro Expansion

可能对于没接触过这个东西的人,这几个概念还不是十分直观,那么这样,在脑子里描绘这样一幅情景:

1,原本为Cilent-Server直连这种拓扑,现在引入MySQL Proxy,变成Client-Proxy-Server。

2,原本为了实现高容载能力,对于Server采取了多台并存,Master/Slave甚至是Master/Master等方式的复制集群,配置管理都比较复杂。而引入了Proxy以后,中间存在了这样一个Store-Forward的proxy环节。

3,在这个环节,我们可以通过一种脚本语言来控制这个proxy的行为,例如对于Client进来的查询依照某种条件过滤,甚至依照某种条件改写,再导向后端的Server。

4,凭借自己实现的filtering或rewriting,我们可以实现很多目的,例如Failover,例如Load balance。或者更无聊些我们可以对Client进来的带有弱智语法错误的SQL语句进行修正。

有了这个东西,几乎是想到什么就能完成什么,这可是大大得扩展了MySQL应用的多样性,可以用它来实现一些高端商业数据库的复杂的企业化功能。相信喜欢MySQL的架构设计师们一定会喜欢这个玩艺儿。

这里有篇Getting Start,是很好的入门教材,对于这套软件,定要保持关注。

One Comment

  1. fcicq
    Posted August 12, 2007 at 10:07 am | Permalink

    小声说:
    偶自己写过一个这东西,比这简单,没什么扩展性.

    而且根本不是proxy,只是客户在查询之前问问它数据在哪几台机器(3倍冗余,所以一般是返回3台机器)上而已.

Post a Comment

Your email is never published nor shared.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值