这几个月我用java开发了mysql proxy。采用解析mysql 协议。对客户端完全透明。
性能比mysql 官方上面的proxy低5%。
支持高并发。目前具备功能:
1、读写分离。
2、Data merge。多数据库并发执行sql,合并结果。
3、负载均衡(ROUND ROBIN、WEIGHT BASED)
4、failover等支持。
5、query rout,根据sql语句可制定规则(利用Jboss Drools)来路由到具体的mysql real server。
不支持跨越数据库进行join、排序等问题
性能比mysql 官方上面的proxy低5%。
支持高并发。目前具备功能:
1、读写分离。
2、Data merge。多数据库并发执行sql,合并结果。
3、负载均衡(ROUND ROBIN、WEIGHT BASED)
4、failover等支持。
5、query rout,根据sql语句可制定规则(利用Jboss Drools)来路由到具体的mysql real server。
不支持跨越数据库进行join、排序等问题
这样的话是不是像分布式数据库那样了,要建一个全局表来记录各个数据库上的表?这样的话那MYSQL-PROXY就成了一个分布式数据库的中间件了?
在MYSQL-PROXY下各个数据库是采用MASTER-SLAVE来保证各个数据库的一致的吗?
中文文档: http://amoeba.sourceforge.net/doc
相关讨论: http://www.javaeye.com/topic/188598
中文文档: http://amoeba.sourceforge.net/doc
相关讨论: http://www.javaeye.com/topic/188598
能推荐一些数据库中间件产品吗?(开源的最好)及相关的资源.你是采用了什么策略来保证DATA MERGE的正常执行?比如在一个数据库迟迟不能给予AMOEBA的查询返回结果?(二段式提交?)可以给我些文档参考吗?
任何一台数据库访问异常结果都只返回异常数据包不推荐用在返回大数据量的场面,因为在java里面 32位系统最多内存只能设置1.5G 合并结果是比较浪费内存的.amoeba目前暂时不支持事务。