罗立树-数据库中间件架构设计和实现细节

更新时间:2023-05-24 13:10:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库中间件架构设计和实现

技术中心· 架构部 罗立树

关于我 易宝支付核心开发 阿里巴巴商品线(内部统称Offer,基于 Cobar)服务化落地负责人,中文站开放平 台负责人 京东网站交易部架构师 百度高级开发工程师,负责LBS地图商户中 心架构和团购架构方面的工作

Contents基础知识介绍 开发中间件的目的 实现方案解析 架构设计和实现细节 中间件的未来规划 5分钟完成分库分表 如何接入使用

一些概念 读写分离? HA(高可用性)? 分库分表? 事务和分布式事务? 数据一致性?

数据库性能关键点?索引 存储 IO、数据 量、算法 CPU、内 存 锁 其他…

线程

CAP理论Consistency

Partitiontolerance

Availability

带着疑问思考 假如你来设计一套中间件你会怎么设计? 你认知的数据库中间件都有哪些?他们相 对于我们的解决方案都有哪些优点?

??

Contents基础知识介绍 开发中间件的目的 实现方案解析 架构设计和实现细节 中间件的未来规划 5分钟完成分库分表 如何接入使用

现状

中间件解决的问题 简化开发,降低分库分表复杂度 分库分表透明化 统一配置管理 提供监控 链接管理 HA支持 LoadBlance支持 提供更好的扩展能力

中间件解决的问题

Contents基础知识介绍 开发中间件的目的 实现方案解析 架构设计和实现细节 中间件的未来规划 5分钟完成分库分表 如何接入使用

实现方式 应用硬编码实现 DAL封装(或者ORM封装) JDBC 基于Mysql客户端协议

基于客户端的访问模式

Mysql协议访问模式

实现方式比较比较项实现难度 应用代码复杂度 性能 透明性支持 运维健壮性 部署结构复杂度 耦合问题 数据库版本关联 扩展能力 低 高 高 糟糕 很好 轻量级

DAL方式中 无 高

ORM方式

JDBC客户端方式高 无 高 良好 很好 轻量级 和jdbc版本耦合 数据库无关 良好 小 难度大 较多 支持 较高 无 中 很好 较弱 较重

mysql协议方式

良好 很好 轻量级

和业务代码耦 和框架耦合 合 数据库无关 较复杂 数据库无关 良好 小 难度大 较多 支持

和mysql客户端交互协议版本耦合,数据库&协 议升级问题 仅局限mysql 良好 大 容易 较少 不支持 不支持

线上修改影响范围 小 跨语言支持 难度大

数据库服务器连接 较多 单库事务支持 分布式事务 支持

支持,性能差 支持,性能差 支持,性能差

方案选择

方案选择解析 没有完美的解决方案,只有适合的方案 公司现状:90%以上应用是java代码 成本考虑:轻量级使用物理成本低 项目进度考虑:有一个快速的实现,逐步完善 系统健壮性考虑:基

于代理的方案健壮性差一些 开发难度(人力成本):基于mysql协议的开发难度较大,不 可控 集群性能上考虑 基于mysql协议的可以引入,但是方案上存在架构中心化 的缺陷

Contents基础知识介绍 开发中间件的目的 实现方案解析 架构设计和实现细节 中间件的未来规划 5分钟完成分库分表 如何接入使用

功能规划

设计的原则 模块化 职责分离 支持封装和扩展 …

相关课题比较大,可以在下一次分享中讲 述

本文来源:https://www.bwwdw.com/article/3p24.html

Top