基于代理的分库分表中间件汇编.pptx

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于代理的分库分表中间件汇编

基于代理方式的分库分表中间件dbproxy 目的地技术部 周文斌 目录 解决的问题 总体架构 前端连接管理 路由模块 SQL执行模块 后端连接管理 负载均衡 权限控制 2017-4-13 Dbproxy是什么? 数据库代理 关系数据库的路由器 关系数据库升级到大数据的应用中间件 基于开源的mycat实现 支持数据的水平拆分 2017-4-13 解决的问题 数据的增长存储问题 数据库连接的集中式管理 数据库的透明化扩展 数据库的透明化迁移 2017-4-13 实现的功能 分库分表 读写分离 负载均衡 服务注册发现 权限控制 目录 解决的问题 总体架构 前端连接管理 路由模块 SQL执行模块 后端连接管理 负载均衡 权限控制 2017-4-13 总体架构 mysql mysql pg BackendConnectionManager pgDriver FrontendConnectionManager 协议适配(mysql) 协议解析 Sql解析 规则路由 Sql executor 结果合并 响应报文 客户端 客户端 MysqlDriver Mysql数据包 目录 解决的问题 总体架构 前端连接管理 路由模块 SQL执行模块 后端连接管理 负载均衡 权限控制 2017-4-13 前端连接管理 1. 跟客户端建立连接 2. 进行权限认证 3. 前端连接的创建及销毁 协议解析模块 MySQLMessage 封装了Mysql协议包的操作 方便对TCP的数据进行Mysql协议解析 3byte 1byte n bytes 消息长度 报文数据 序号 消息头 消息体 1byte n byte 命令 参数 mysql报文 请求消息体 协议解析模块 3byte 1byte n bytes 3byte 1byte n bytes 3byte 1byte n bytes 3byte 1byte n bytes 3byte 1byte n bytes Result Set Header Field EOF Row Data EOF ResultSetHeaderPacket, FieldPacket, EOFPacket, RowDataPacket Mysql响应报文 目录 解决的问题 总体架构 前端连接管理 路由模块 SQL执行模块 后端连接管理 负载均衡 权限控制 2017-4-13 路由模块 SQL解析 DruidParse 分库标示 路由规则 路由函数 读写分离 特殊路由 事务 强制读主库 无分库标示 qmq路由 SQL解析 获取分库标示,定位分片 参数 1分片 2分片 … 解析语句,定位主从 SelectStatement 从库 UpdateStatement,DeleteStatement,InsertStatement 主库 2017-4-13 路由配置 2017-4-13 dataNode name=dn0 dataHost=server0 database=des_trade / dataHost name=server0 maxCon=15 minCon=10 balance=2 writeType=0 dbType=postgresql dbDriver=jdbc heartbeatselect now()/heartbeat writeHost host=hostM0 url=jdbc:postgresql://:5432/des_trade user=tuan_usr password=“xxxxxxxxx readHost host=hostS01 url=jdbc:postgresql://:6432/des_trade user=tuan_usr password=“xxxxxxxxx / /writeHost /dataHost 数据库节点对应的dn0, dn1 路由配置 每个表都会配置分库规则 每条规则对应一个路由函数 table name=order_oplog primaryKey=ID dataNode=dn0,dn1 rule=begin-after-one-day-by-oid / tableRule name=begin-after-one-day-by-oid rule columnsoid/columns algorithmafterOneDayByOid/algorithm /rule /tableRule function name=afterOneDayByOid class=com.qunar.des.dbproxy.function.PartitionByOIDAfterDay property name=dateFormatyyyy-MM-dd/prop

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档