【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

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

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2016-09-29 21:496184

评论

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

前后端统一结果集封装

Peision

Java json 前后端分离 springboot

C++ 线程安全的单例模式总结

小林coding

c++ 设计模式 单例模式 线程安全

记一次bem命名规范使用优化方案

前端有的玩

Vue npm React bem

压测工具如何选择?

elfkingw

架构师训练营第七周作业

王铭铭

职业吐槽与反思(一)

石君

职场 吐槽

创业使人成长系列 (5)-申请国家高新企业

石云升

高新企业

【数据结构】Java 常用集合类 PriorityQueue

Alex🐒

Java 源码 数据结构

架构师训练营 - 命题作业 第 7 周

铁血杰克

百万并发「零拷贝」技术系列之初探门径

码农神说

Java 架构 零拷贝

Java的异常处理

Bruce Duan

java异常处理

Java并行程序基础

itlemon

Java 高并发 并行

JVM 运行时数据区

Alex🐒

JVM 深入理解JVM

Flask 中的 Sessions

Leetao

Python flask Web框架

为什么 Flink 无法实时写入 MySQL?

Apache Flink

flink

架构师训练营第七课总结

曾祥斌

并发必备基础知识汇总

itlemon

并发 基础

Spring Security入门到实践(一)HTTP Basic在Spring Security中的应用原理浅析

itlemon

源码分析 spring security

JVM 垃圾回收机制

Alex🐒

JVM 深入理解JVM

【干货分享】通过命令操作来学习Git

itlemon

git git入门

【数据结构】Java 常用集合类 ArrayDeque

Alex🐒

Java 源码 数据结构

JVM 垃圾回收器 CMS

Alex🐒

JVM 深入理解JVM GC

Ubuntu 20.04 上安装和配置 VNC

酱紫的小白兔

JVM 垃圾回收器 G1

Alex🐒

JVM 深入理解JVM GC

专访英特尔唐炯:对旗下产品性能及未来路线图充满信心

最新动态

解决 Harbor 启动失败故障

FeiLong

Docker Harbor Docker-compose

vcenter 5.5故障处理

小小文

vcenter

玩转混合加密 | 精美配图

阿宝哥

安全 加密解密 数据加密

架构师训练营第七周作业-性能测试

sunnywhy

前后端分离跨域问题解决方案

Peision

Java 前后端分离 springboot

【译文】创建 Kubernetes manifest 的初学者指南

FeiLong

Kubernetes

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