写点什么

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

评论

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

推荐给远程办公用户的云桌面服务

青椒云云电脑

云桌面 云桌面厂家 云桌面系统

淘宝 app 商品详情数据接口:让你轻松掌握优惠价、视频和到手价,助力电商决策

tbapi

淘宝商品详情接口 淘宝app详情接口 淘宝详情数据接口 淘宝优惠券接口 淘宝到手价接口

2024年最佳云桌面服务:为远程工作者量身定制

青椒云云电脑

云桌面 云桌面厂家

全球CDN加速的优势与作用

HUODUNYUN

CDN CDN加速 CDN技术 CDN网络加速 全球CDN

公链技术开发之路:从概念到实现的公链开发全攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 代币开发 海外推广

有哪些常见的云桌面使用误区?

青椒云云电脑

云桌面 云桌面厂家 云桌面方案

实时语音交互的游戏队友——网易伏羲AI Agent创新应用 | DataFunSummit2024演讲实录

网易伏羲

人工智能 AI 语音 网易伏羲 游戏AI

云桌面适合哪些类型的工作

青椒云云电脑

云桌面

云桌面解决方案:为何远程办公需要它们

青椒云云电脑

云桌面 云桌面系统 云桌面技术

软件测试学习笔记丨宠物商店-接口自动化测试实战

测试人

软件测试

Databend 产品月报(2024年9月)

Databend

得物iOS函数调用栈及符号化调优实践|得物技术

得物技术

ios

顶级云桌面套餐:远程办公的终极指南

青椒云云电脑

云桌面 云桌面方案 云桌面系统

什么样的云桌面套餐适合按需计费的用户?

青椒云云电脑

云桌面

什么政府网站一定要安装SSL证书吗?应该选择哪种SSL证书?

国科云

有哪些常见的云桌面套餐比较推荐?

青椒云云电脑

云桌面 云桌面厂家 云桌面方案

【直播预约】下周四大咖云集,不见不散!运维生态直播之“可观测技术实践”等你来~

乘云数字DataBuff

可观测性 zabbix oceanbase 应用性能监控 一体化可观测平台Databuff

Js数组&高阶函数

不在线第一只蜗牛

JavaScript 前端

大数据存储计算平台EasyMR:大数据集群动态扩缩容,快速提升集群服务能力

袋鼠云数栈

日志分析是什么?如何进行日志分析?

ServiceDesk_Plus

日志分析 日志采集 日志处理

淘宝商品详情数据接口:解锁电商数据分析新密码

tbapi

淘宝商品详情数据接口

IT行业还有未来吗?

程序员高级码农

程序员 互联网 计算机 #编程

如何评估云桌面套餐的性价比?

青椒云云电脑

桌面云 云桌面 云桌面厂家 云桌面系统

离了大谱,和HR互怼后被开了!

王磊

实操上手TinyEngine低代码引擎插件化开发

OpenTiny社区

开源 前端 插件化 OpenTiny 低代码引擎

AI+云原生时代,高校该如何创新教育模式

Tp_jh

云计算 软件工程 计算机 大学 #云原生

阿里云EMR StarRocks X Paimon创建 Streaming Lakehouse

Apache Flink

大数据 flink StarRocks EMR

k8s-NFS系统配置

不在线第一只蜗牛

Kubernetes 容器 云原生

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