写点什么

携程开源数据库访问框架 Ctrip DAL

  • 2016-09-29
  • 本文字数:983 字

    阅读完需:约 3 分钟

随着企业规模扩张和业务量的急剧增加,作为系统核心的数据库相关开发也会经历一个由单一团队发展为多团队;由单机扩张到集群;由单数据库发展为多数据库;由采用单一数据库产品到多种数据库产品并存的过程。

伴随这一过程的是如何管理数据库扩展,如何规范数据库访问,如何保护数据库投资,如何应对访问量增加,如何预防安全问题等一系列挑战。

作为国内在线旅游行业的翘楚,携程也曾经面对同样困扰。为了应对这些挑战,实现企业 10 倍速发展,携程开发了具有自己特色的数据库访问框架 Ctrip DAL。

Ctrip DAL 支持流行的分库分表操作,支持 Java 和 C#,支持 MySQL 和 MSSqlServer。使用该框架可以在有效地保护企业已有数据库投资的同时,迅速,可靠地为企业提供数据库访问层的横向扩展能力。

整个框架包括代码生成器和客户端。工作模式是使用代码生成器在线生成代码,通过 DAL 客户端完成数据库操作。生成器具有丰富的向导指引,操作简单清晰,既可以批量生成标准 DAO,也可以在方法级别定制数据库访问。客户端则可以简单地通过标准的 maven 方式添加依赖。

Ctrip DAL 与一般数据库框架最大的不同是从企业跨部门的角度,统一管理数据库相关资源。通过部署代码生成器,企业可以做到有效的管理全公司的 DAL 开发团队,明确数据库归属和定制数据库访问。通过代码生成器生成的标准 DAO 代码与客户端配合使用,可以大幅提高工作效率,保证代码质量。解决了业内常见的伴随业务成长而带来的系统维护困难,开发效率低下,代码风格五花八门,代码质量参差不齐等痛点问题。

为了适应不同公司的实际情况,DAL 定义了丰富的扩展接口,覆盖了从数据源管理,数据库映射,连接串读取到自定义访问方式等等方方面面的功能。同时为了方便系统监控还内置了系统状态,日志和统计模块。

Ctrip DAL 由携程技术中心框架部 DAL 团队开发,历经 3 年不断打磨,在长期的实际使用中吸收了大量用户反馈。目前携程超过 117 个独立 DAL 团队通过代码生成器管理数据库和创建 DAO。2000 多个应用在使用 DAL 框架,占携程所有数据库应用总数超过 90%。

本次开源的产品包括代码生成器和 Java 客户端,C#客户端也将近期开源。DAL 各个组件的安装和使用都有详细的文档说明,开箱即用。
通过开源携程自身使用 DAL 框架,携程希望在满足自身需求的同时,服务于广大企业,并继续为中国方兴未艾的开源运动出点力。

更多详情请参考: https://github.com/ctripcorp/dal

2016-09-29 21:496673

评论

发布
暂无评论
发现更多内容

Kubernetes入门——深入浅出讲Docker

百度开发者中心

Docker Kubernetes 云原生

在vscode中go编码发生的问题整理

happlyfox

学习 vscode 28天写作 3月日更 Go 语言

React在函数组件中使用Ant-Design的Form(form组件和按钮属于不同的组件)

依旧廖凯

28天写作 3月日更

腾讯极客技术挑战赛-writeup

五个问题,三大策略,手把手教你定制App性能监控方案

监控 应用性能 监控工具 告警设置 质量监控

论如何快速吃透算法?186道高阶算法题+学习资料程序员面试必备

比伯

Java 编程 架构 面试 程序人生

Timewait是什么

我是程序员小贱

3月日更

mysql5.7安装教程

xiezhr

MySQL 安装 MySQL 运维

Redis核心技术与实战 学习笔记 02

escray

redis 极客时间 28天写作 3月日更 Redis 核心技术与实战

uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

黑马腾云

微信小程序 uni-app 大前端 uniapp 3月日更

如何跨单元格绘制斜线

IT蜗壳-Tango

3月日更 IT蜗壳教学

产品经理面试常见问题总结1

lenka

3月日更

阿里二面:什么是mmap?

艾小仙

微服务的下一步,离不开服务网格

xcbeyond

微服务 Service Mesh 服务网格 3月日更

第七.产品规划与功能规划

让我思考一会儿

PHP-Trait解析与使用

一个大红包

3月日更

2021金三银四必备的1000道Java面试题以及答案整理【最新版】

Java 编程 程序员 面试

小争哥的算法打卡1群-算法题打卡

黄敏

算法

Java的“泛型”特性,你以为自己会了?(万字长文)

比伯

Java 编程 程序员 架构 计算机

对htmlMeta的实例详解

佰草

html5

吉他扒谱该怎么做?分享一款超好用的扒谱工具!

奈奈的杂社

校招开始,你做好【终身成长】的准备了吗?

闲鱼技术

Nginx 一个高性能的HTTP和反向代理服务器

赖猫

nginx 后端 Linux服务器

Kubernetes入门——Kubernetes工作原理及使用

百度开发者中心

#Kubernetes# #技术课程#

Java程序员面试15家公司收到15份offer,月薪35K全靠这Java面试小抄(2021版)开源分享

Java 程序员 面试

思维转换 - 更好的认识世界

石云升

程序员 思维模型 28天写作 3月日更

ICASSP2021 M2VoC挑战赛报告会:高分队伍及评审分享回顾(附PPT)

爱奇艺技术产品团队

(28DW-S8-Day26) 研发流程重整

mtfelix

28天写作

Kyuubi: 网易数帆开源的企业级数据湖探索平台(架构篇)

网易数帆

大数据 spark 开源 Kyuubi

PC五年,华为如水

脑极体

人脸识别无间道

脑极体

携程开源数据库访问框架Ctrip DAL_语言 & 开发_赫杰辉_InfoQ精选文章