如何实现分布式数据库

1.前言:

我们知道随着用户数量的增长,应用软件的规模会逐步增大,同时也使应用的服务压力愈发大。而首当其冲的无非是数据库操作资源...



2.技术方案:

这里采用jndi技术实现分库读写(mysql和oracle数据库集成)



3.具体实现:

a.配置tomcat的server.xml

   <Context>
       <Resource name="jdbc/mysql" auth="Container"
                 type="javax.sql.DataSource"                                                               driverClassName="com.mysql.jdbc.Driver"                                                          url="jdbc:mysql://127.0.0.1:3306/test"
                 username="admin" password="admin“
                 maxActive="100" maxIdle="30" maxWait="10000”  />

      <Resource name="jdbc/orcl" auth="Container"
                type="javax.sql.DataSource"                                                       driverClassName="oracle.jdbc.OracleDriver"                                                      url="jdbc:oracle:thin:@127.0.0.2:1521:orcl"
                username="trigger" password="trigger"
                maxActive="50" maxIdle="10" maxWait="10000"/>
   </Context>

b.配置项目的web.xml

            <resource-ref>
                       <description>DB Connection</description>
                       <res-ref-name>jdbc/mysql</res-ref-name>
                       <res-type>javax.sql.DataSource</res-type>
                       <res-auth>Container</res-auth>
            </resource-ref>
             <resource-ref>
                      <description>DB Connection</description>
                      <res-ref-name>jdbc/orcl</res-ref-name>
                     <res-type>javax.sql.DataSource</res-type>
                    <res-auth>Container</res-auth>
             </resource-ref>

*注意: <res-ref-name>jdbc/mysql</res-ref-name>的值必须匹配 <Resource name="jdbc/mysql" auth="Container" ...的name,否则会出现错误

c.如何初始化资源链接:

       Context initContext = new InitialContext();
       Context envContext  = (Context)initContext.lookup("java:/comp/env");
       DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
       Connection conn = ds.getConnection();

4.总结:

配置服务器(tomcat) ==》配置项目的web.xml ==》在项目中引入数据库驱动包 ==》获取数据库连接



5.分享和交流:

如有纰漏!望各位看客斧正,谢谢



6.引用资源:

JNDI 在 J2EE 中的角色(http://www.ibm.com/developerworks/cn/java/j-jndi/)

JNDI Datasource HOW-TO(https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#Introduction)

时间: 2024-10-22 09:25:32

如何实现分布式数据库的相关文章

云时代的分布式数据库:阿里分布式数据库服务DRDS

[http://www.csdn.net/article/2015-07-15/2825221] 云时代的分布式数据库:阿里分布式数据库服务DRDS -- 伴随着系统性能.成本及扩展性的新时代需要,以HBase.MongoDB为代表的NoSQL数据库和以阿里DRDS.VoltDB.ScaleBase为代表的分布式NewSQL数据库如雨后春笋般不断涌现出来.本文详细介绍了阿里分布式数据库服务DRDS.

Mysql分布式数据库变更自动化部署

Author:skate Time:2015/03/05 MySQL数据库变更自动部署 概述: 这个Mysql数据库发布程序,可以自动.快速.并发的发布数据变更并记录结果.把部署内容从部署server传输到所有部署database并执行部署内容. 本程序主要用于分布式数据库部署,比如把一个部署脚本需要同时部署到多台database上. 测试环境: deploydb: [[email protected] skate]# ll autodeploy total 36 -rw-r--r-- 1 ro

分布式数据库中间件–(3) Cobar对简单select命令的处理过程

友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在上一篇中介绍了Cobar和client初次建立连接的过程,Cobar监听端口,client发起连接请求,Cobar发送握手数据包,client发送认证数据包最后依据认证的结果Cobar向client发送认证结果. 在认证成功后Cobar会将该连接的回调处理函数由FrontendAuthenticat

探析大数据需求下的分布式数据库

一.前言 大数据技术从诞生到现在,已经经历了十几个年头.市场上早已不断有公司或机构,给广大金融从业者"洗脑"大数据未来的美好前景与趋势.随着用户对大数据理念与技术的不断深入了解,人们已经开始从理论探索转向对场景落地的寻找,让大数据在企业中落地并开花结果. 从大数据的管理和应用方向集中在两个领域.第一,大数据分析相关,针对海量数据的挖掘.复杂的分析计算:第二,在线数据操作,包括传统交易型操作以及海量数据的实时访问.大数据高并发查询操作.用户根据业务场景以及对数据处理结果的期望选择不同的大

分布式数据库集群中间件

我是一个分布式数据库集群中间件的开发人员,已经一年多一点的开发时间了,今天总结点我所知道的一些事情,给有新近来到这个领域的研发人员一点借鉴. 生活不易,赚钱不易,离开仅仅是为多赚点钱. ----学渣 我仅仅是说我所开发过的系统: 后面文章会有具体的分析.这里仅仅做简单的梳理.也就是你要研发分布式数据库集群中间件.须要向着哪些方面去思考. 首先我们从名字去分析我们正在从事的工作内容: 1. 分布式 须要考虑它的方向(后面具体说明) a)  分布式中的概念 b)  分布式的模型 c)  分布式系统特

SQL Server 创建水平分布式数据库尝试

创建水平分布式数据库,需要分两步实现:划分子集和对子集进行并集操作.分布式数据库的优势是:IO分散,便于快速读取数据,劣势是消耗大量的网络带宽资源. 划分子集是将原始表水平切分成若干个较小的成员表,每一个成员表都是全集的一个划分(各子集的并集是全集,其交集是空集).每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型.大小.排序规则),水平切分原始表,也叫做数据库水平分片,sharding.在查询时,为了实现SQLServer内部水平分片对用户透明,必须利用

大型分布式数据库集群的研究

1.为什么要设计成分布式数据库,数据为什么要分区? 当数据量很大的时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响了最终用户的体验. 在大数据量下对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响了数据库的可用性和可管理性. 这个时候靠提升服务器的硬件配置是起不到作用的,只有靠分区把数据分成更小的部分才能提高数据库的可用性和可管理性. 通过分区把各部分数据放到不同的机器中,每次查询可以由多个机器上的CPU,I/O

分布式数据库服务器的四层架构

分布式数据库服务器的四层架构: 访问层:接收访问信息并按负荷智能的分配给中转服务器,接受数据结果并返回客户端. 中转层:接收访问服务器发来的数据访问指令,从总储存服务器寻找数据分布所在的储存服务器,发送指令. 表头层:储存数据的表头信息,以确定储存服务器位置. 处理层:分布式数据储存服务器,接收指令并执行,然后返回数据给访问服务器. 功能分布: 访问服务器只做四件事:接收客户端的访问数据,接收中转服务器的负荷状态信息,并且把数据分配给负荷最低 的中转服务器,接收结果后返回客户端. 中转服务器只做

大数据将促进分布式数据库发展及去Oracle

2015-09-13 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 分布式数据库简介 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库, 通过网络互相连接共同组成一个完整的.全局的逻辑上集中.物理上分布的大型数据库. 分布式并行数据库通过并行使用多个CPU和磁盘来将诸如装载数据.建立索引.执行查询等操作并行化以提升性能的数据库系统.其中最重要的关键

分布式数据库中全局唯一主键

[相关文章] <分布式数据库中全局唯一主键生成策略的设计与实现><activiti5.10解决分布式集群部署的主键问题><分布式环境下数据库主键方案><如何在高并发分布式系统中生成全局唯一Id><分布式环境下ID生成方法总结> <分布式环境下数据库主键方案> [ http://www.2cto.com/database/201309/243195.html ] 在只使用单数据库时,使用自增主键ID无疑是最适合的.但在集群.主从架构上时