写点什么

携程开源数据库访问框架 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:496714

评论

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

明天重新杨帆起航

IT蜗壳-Tango

5月日更

怎么学

Nydia

学习

Python 协程

若尘

协程 Python编程 5月日更

Dubbo 负载均衡

青年IT男

dubbo

千万级学生管理系统的<考试试卷>存储方案

唐江

架构实战营

“读万卷书,行万里路”,让你收获一个不平凡的人生

小天同学

读书 成长 旅行 5月日更

Flutter开发:Failed to retrieve the Dart SDK…的解决方法

三掌柜

5月日更

从火星的古海洋,读懂蓝星的数据湖之变

脑极体

2千亿级超大模型的构建,能否突破中文场景的极限

这不科技

人工智能 nlp

数字化战争即将开启,区块链将成为有效防护壁垒

CECBC

数据挖掘从入门到放弃(五)seaborn 的数据可视化

数据社

机器学习 5月日更

架构学习笔记:架构定义

风翱

架构 5月日更

JavaScript 类型化数组

空城机

JavaScript 大前端 5月日更 类型化数组

Golang List, Ring and Map

escray

学习 极客时间 Go 语言 5月日更

从非洲血库到热带雨林:为什么普惠联接是社会的数字化支点?

脑极体

成功产品三要素

lenka

5月日更

集成学习案例一 (幸福感预测)

容光

数据处理

浪潮云向前进一步,又向后让一步

云计算

霸榜GitHub的阿里内部Spring Boot实战文档到底有多强?

Java 架构 面试 微服务

5分钟速读之Rust权威指南(四)

wzx

JavaScript rust

《冰河的渗透实战笔记》电子书,442页,37万字,正式发布!!

冰河

网络安全 信息安全 渗透测试 网络攻防 互联网技术

分布式事务与分布式系统

邱学喆

分布式事务 raft CAP PAXOS 副本一致性

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

Java 程序员 架构 面试

ConcurrentHashMap

ltc

ConcurrentHashMap

网络攻防学习笔记 Day18

穿过生命散发芬芳

5月日更 网络攻防

url踩坑记录

ES_her0

5月日更

Unix/Linux 编程:网络编程之 线程池

赖猫

Linux Linux服务器开发 Linux网络编程

❄️【程序员必看系列】开源项目有盈利模式指南

码界西柚

开源 程序员 盈利模式 5月日更

位列第五大生产要素,大数据该如何突破隐私安全魔咒?

CECBC

docker(centos系统)安装vim工具

liuzhen007

Docker 5月日更

android端音频采集与播放

floer rivor

android 音视频

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