2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

容器 & 服务:Docker应用的Jenkins构建

程序员架构进阶

Docker 容器 七日更 28天写作 2月春节不断更

BFF (Backend for frontend)避坑指南

码猿外

架构 微服务 BFF

python与c++区别之print

沈阳

话题讨论 | 如何看待公司发开工红包?

happlyfox

话题讨论 28天写作 2月春节不断更 话题王者 红包

windows10+python3.8.0(anaconda)+MeCab安装总结

lauqasim

Python Mecab 日文分词

Python入门-位运算

123568

Python 入门 位运算

程序员成长第十五篇:编码的注意事项

石云升

程序员 28天写作 2月春节不断更

Spark Shuffle 内部机制(三)

hanke

大数据 spark 开源 数据

新病毒兼容M1芯片,已经感染3万台Mac

Geek_b0cff7

基于matlab的控制系统与仿真3-根轨迹、bode图、Nyquist图

AXYZdong

matlab 2月春节不断更

修改OpenCV一行代码,提升14%图像匹配效果

Smile

机器学习 OpenCV Python Turtle 图像处理

Elasticsearch入门,这一篇就够了

知南茶温暖

浅谈Python中遇到extend和append,该怎么区别使用

莫陌默

Python 列表 函数

带你快速了解Flutter的发展和应用

anyRTC开发者

flutter 音视频 WebRTC 跨平台 sdk

Mybatis association关联查询

フェイト ゼロ

CPU高速缓存与极性代码设计

华为云开发者联盟

缓存 数据 cpu 存储

c语言简介

Geek_f510ff

c C语言

可能是Java Stream的最佳实践(一)

ES_her0

28天写作

华云·云场景应用详解|安超DCM给数据中心“做主”

华云数据

设计模式之代理模式

Geek_7cf491

Java 设计模式 代理模式

以AI之名 | 给千万级合同管理安上“AI”,华为商务经理工作量大解放!

华为云开发者联盟

人工智能 华为 合同 商务 合同管理

kafka consumer group

Eric

华为云PB级数据库GaussDB(for Redis)解析第二期:Redis消息队列Stream的应用探讨

华为云开发者联盟

数据库

几个小实践带你快速上手MindSpore

华为云开发者联盟

华为 AI mindspore 智慧终端 端边云

效率工具分享-Quicker

十天、

效率 效率工具 工具 工具软件

2019年度CMMI V2.0性能报告

IPD产品研发管理

产品 项目管理 性能 质量 CMMI

我与声网Agora

june

日记 2021年2月24日(周三)

Changing Lin

2月春节不断更

数据驱动业务增长的底层逻辑2.0

小飞象@木木自由

产品 数据分析 运营 业务增长

cobra-强大的CLI应用程序库

happlyfox

GitHub cli 28天写作 2月春节不断更 Go 语言

Windows下JMeter分布式压测环境搭建

行者AI

Jmeter

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