技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 逻辑连接层与物理连接层

逻辑连接层与物理连接层

浏览:2056次  出处信息

       为了更好地利用MySQL的廉价复制(Slave)功能, 在DataReport的数据库连接层中增加了逻辑连接层, 原来是直接指定物理边接层. 当然数据库连接池还是在物理连接层实现的, 逻辑连接层则可以指定一种关系, 然后根据关系来获得指定的数据库物理连接, 当应用使用逻辑连接层来访问时, 其实是自动根据关系挑选一个物理连接.

       还是举一个例子来说明一下, 比如你有一台主MySQL库(master)后面挂了三台从MySQL库(Slave), 然后用DataReport去搭建一个以读为主的应用, 希望DataReport能首先随机挑选三个Slave库中的一台进行读取, 如果三台Slave都不行, 则从Master进行读取.

       首先定义四台MySQL数据库的连接, 称为物理层的配置.

PHYSICAL.DBLIST=MASTER|SLAVE1|SLAVE2|SLAVE3

       然后定义逻辑连接层, 以实现上面的要求.

LOGICAL.DBLIST=writedb|slavedb|readdb

    LOGICAL.WRITEDB=FIRST|MASTER

    LOGICAL.SLAVEDB=RANDOM|SLAVE1,SLAVE2,SLAVE3

    LOGICAL.READDB=FAILOVER|SLAVEDB,WRITEDB

       其中FIRST表示读取第一个连接池, RANDOM表示从后面的连接中随机选一个, FAILOVER表示第一个失败的话,取下一个. 通过这三种关系, 就实现了我们的要求. 然后给物理连接池及每个逻辑连接都加上状态判断, 当遇到连接关闭的错误时, 就将相应的连接池标记为不可用(Markdown), 逻辑库层可以主动跳过已经被Markdown的下一级节点, 按照规则查找到一个可用的物理数据库连接.

       在DataReport中还设置了一个守护进程, 会每分钟检查各个Markdown的物理连接池, 偿试去Markup, 一当出现意外的物理库回到正常状态, 就可以提供服务, 使应用保持高可用状态.

建议继续学习:

  1. 逻辑连接层与物理连接层(2)    (阅读:2030)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PostgreSQL安装
后一篇:MySQL Timeout解析 >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1