写点什么

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

评论

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

如何通过YashanDB数据库实现智能数据管理

数据库砖家

智能搜索是什么,如何使用?产品设计提效技巧分享

职场工具箱

人工智能 AI 产品设计 AIGC ui设计

从 “数据洞察” 到 “可持续行动”:MyEMS 开源能源管理系统的核心价值与实践意义

开源能源管理系统

开源 开源能源管理系统

这些CAD看图纸小技巧你一定要了解!

在路上

cad cad看图

如何通过YashanDB实现数据备份和恢复的最佳实践?

数据库砖家

儿童无屏幕对讲机 Bunny 融资百万美元;腾讯会议推出 AI 托管:先行听会、代听多会、全程记录丨日报

声网

HarmonyOS 5.0应用开发——V2装饰器@once的使用

高心星

鸿蒙 装饰器 HarmonyOS5.0 V2装饰器

物流助手系统说明

微擎应用市场

对话质变科技CEO离哲:大模型决定上半场,数据和工程能力决定下半场

AI数据云Relyt

AI 数据分析 大模型 AI Agent Agentic AI

如何通过YashanDB数据库实现数据实时同步

数据库砖家

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布

JackJiang

网络编程 即时通讯 IM MobileIMSDK RainbowChat

微活码系统介绍

微擎应用市场

如何通过YashanDB实现数据一致性与高可用

数据库砖家

如何通过YashanDB数据库实现高并发数据访问

数据库砖家

MyEMS:赋能每一个组织,成为自己的能源管理专家

开源能源管理系统

开源 开源能源管理系统

从西贝预制菜事件看企业公关失误与舆情监测的重要性

沃观Wovision

沃观Wovision 舆情监测系统 海外舆情监测 西贝

如何通过YashanDB实现企业数据库持续集成和部署

数据库砖家

无需复杂正则:SLS 新脱敏函数让隐私保护更简单高效

阿里巴巴云原生

阿里云 AI 云原生 日志服务 sls

如何通过YashanDB数据库提升客户体验与服务质量

数据库砖家

如何通过YashanDB数据库实现业务智能化

数据库砖家

北京航空航天大学 鲲鹏昇腾科教创新孵化中心揭牌,推动中国自主计算生态建设

极客天地

函数计算进化之路:AI Sandbox 新基座

阿里巴巴云原生

阿里云 Serverless 云原生

通过YashanDB实现企业级数据一致性和隔离性的技术分析

数据库砖家

MyEMS:开源能源管理的探索与实践

开源能源管理系统

开源 开源能源管理系统

PWA vs 小程序:技术对比及出海应用策略探讨

xuyinyin

如何通过YashanDB实现数据实时同步与复制

数据库砖家

如何通过YashanDB实现数据访问的高可用性?

数据库砖家

MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术

得物技术

MySQL 数据库 关系型数据库 MySQL 数据库

AI教育白皮书解读 | 新工科背景下“人工智能+教育”模式探索与实践

ModelWhale

AI教育 人工智能+ 工科

如何通过YashanDB实现企业数据的智能分析与挖掘

数据库砖家

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