前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能都遇到这种情况,应用程序中需要连接多台数据库服务器,进行相应的操作。随着时间积累,太多的数据库服务器的连接逻辑出现在程序之中,这给程序的维护扩展,数据库维护工作带来极大的工作量。
于是一些分布式数据库代理层应运而生,如常见 MySQL 代理层 :
mysql proxy : 主要实现读写分离和负载均衡
MySQL Amoeba : 由陈思儒主导开发 功能比较完善,用深入应用的价值,参考网站http://docs.hexnova.com/amoeba/
HiveDB : HiveDB是一个用来横向切分 mysql 数据库的开源框架,构建一个高性能和可扩展的基于 mysql 的系统,但目前仅支持 Java 客户端。 http://www.hivedb.org/
我认为mysql proxy, MySQL Amoeba 都是极好的实用价值,应该多深入了解之。
而本文所描述的 federated属于 MySQL的一种特殊引擎,利用它可将本地数据表映射至远程 MySQL 数据表,从而就可以解决应用程序中繁多的跨机器连接数据库问题,拓扑图如下:
如此就可以构造出一个统一的数据访问入口,就大大提高了整个数据库系统的可维护性。
Federated引擎是基于表级别的,只