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

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

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

作为国内在线旅游行业的翘楚,携程也曾经面对同样困扰。为了应对这些挑战,实现企业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

原文发布于微信公众号 - 携程技术中心(ctriptech)

原文发表时间:2016-09-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

2017 年 Linux 的五大痛点

到目前为止,糟糕的文档是 Linux 用户最头痛的问题。这里还有一些其他常见的问题。 -- Jeremy Garcia 到目前为止,糟糕的文档是 Linux 用...

30770
来自专栏架构师小秘圈

揭秘大型网站架构进化之路

丁浪,非著名架构师。关注高并发、高可用的架构设计,对系统服务化、分库分表、性能调优等方面有深入研究和丰富实践经验。热衷于技术研究和分享。 声明:版权归丁浪作者本...

47250
来自专栏云计算D1net

公有云安全:哪个工具可以保证?

尽管我们的企业使用了一系列的AWS工具,我们还是希望能进一步提升数据的安全措施。那么,在AWS中,有哪些可用的工具来确保数据和资源的安全性呢? AWS拥有一系列...

41950
来自专栏FreeBuf

解密BadUSB:世界上最邪恶的USB外设

作者 Rabbit_Run 概述‍‍ 在2014年美国黑帽大会上,柏林SRLabs的安全研究人员JakobLell和独立安全研究人员Karsten Nohl展示...

19280
来自专栏FreeBuf

四种捕获DDoS攻击的监测工具(含报告)

现在有很多防御或缓解DDoS攻击的服务,但是如何第一时间发现网站被D仍然是个难题。这里我们罗列四个帮助识别DDoS攻击的监测工具和方法。 工具一:内部服务器、网...

51470
来自专栏鹅厂网事

腾讯网络应对闰秒危机之最佳实践

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

26550
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–报价处理(232)-1业务概览

用途 此业务情景介绍标准按订单设计 (ETO) 环境中的报价处理。 SAP 销售与分销 (SD) 和项目系统 (PS) 的功能用于控制整个流程,从客户查...

41090
来自专栏云市场·精选汇

第一次做网站啥也不知道怎么办?新万建站防坑小妙招

很多朋友都没有接触过做网站,当需要做个网站的时候,往往一脸懵!!网站?需要什么东西啊,一个完整上线可以访问的网站由哪几部分组成呢?一个成熟的可以访问的网站,一般...

22050
来自专栏福利活动清单

新用户有哪些优惠——腾讯云篇

满200减150 / 满500减375 / 满1000减750 / 满2000减1500

1.6K20
来自专栏企鹅号快讯

深度解析小程序4大核武器级接口能力

今天给大家介绍4组极其重要,但并不广为人知的微信小程序接口,了解这4类接口,相信您也可以设计出来一款牛逼的微信应用。下面且听微播君为您娓娓道来: 其实在公众号接...

24050

扫码关注云+社区

领取腾讯云代金券