C-JDBC(Java 数据库连接群集)作为开发源码的数据库群集中间件,可以让任何应用程序通过JDBC能够透明的访问数据库群集。数据库可以分布在多个节点并可以进行数据复制,C-JDBC能够均衡在这些节点之间的查询负载。 C-JDBC通过软件来实现RAIDb(廉价数据库冗余阵列)。C-JDBC是GNU LGPL许可证下的ObjectWeb项目。http://c-jdbc.objectweb.org/网站上的C-JDBC-Brochure-EN.pdf写的内容挺好。(C-JDBC)tutorial.pdf内容也挺翔实。
大型应用随着用户量访问越来越大,增加数据库存储和做好数据库冗余可以增加系统的可靠性和性能。
无需修改客户端应用程序,无需变更应用服务器或数据库服务器软件。C-JDBC的JDBC driver把SQL请求转给C-JDBC controller(负责在databases之间做负载均衡)The database is distributed and replicated among several nodes and C-JDBC load balances the queries between these nodes.就这一句话就太诱人了!上周的某一个上午,搞定C-JDBC的安装配置啦~主要根据官方的user guide和这篇好文: http://huaronghu.spaces.live.com/blog/cns!B9A68E1C1CA857AD!288.entry
准备工作: 环境:windows,postgreSQL,JDK建立数据库“们”,安装若干db在若干server上,所以如果使用商业数据库的话,就会需要好几套的钱哪。安装C-JDBC:下载了binary版的c-jdbc-2.0.2-bin.zip,解压到作为C-JDBC server的机器上(e.g. C:\software\c-jdbc-2.0.2-bin),设置环境变量,新增系统变量:CJDBC_HOME =C:\software\c-jdbc-2.0.2-bin把实际使用的数据库的JDBC driver(例如mysql-connector-java-3.1.12-bin.jar ,postgresql-8.0.309.jdbc2.jar)拷贝到c-jdbc/drivers 中配置文件:在c-jdbc-2.0.2-bin/config/virtualdatabase目录中创建虚拟数据库配置文件。里面DatabaseBackend 标签中定义的就是被集群的数据库。试验时,创建了文件:postgresql-raidb1-distribution.xml,使用了2个postgreSQL数据库,采用了全复制的方法。注意,如果采用全复制,所以在2个数据库上建库、建表的全部脚本都要完全相同,否则将会报出mismatch的错误。目前感觉配置里面最有用的配置就是<AuthenticationManager>,<DatabaseBackend>和<LoadBalancer>(还没有仔细看)。配置时可以参考已经提供的例子,c-jdbc-2.0.2-bin/config/RAIDb-1-full-example.xml,里面对每一个属性都有比较详细的注释,DatabaseBackend中还有各个开源数据库连接的例子,挺贴心的。