网易开源数据库中间件Cetus
极客时间编辑部
讲述:丁婵大小:1.41M时长:03:05
在电商系统中,随着业务量的增大,读写 QPS 越来越高,单节点 MySQL 实例压力也变得越来越大,单纯的对服务器硬件升级已经无法满足生产环境的需要。对数据分片增加多个节点,降低单节点 MySQL 实例的压力成了必然选择。
因此 MySQL 数据库中间件应运而生,解决了 DAO 层的诸多问题。对于如何选型,不同公司会有不同的考虑,当然也有公司会选择自研。
最近,网易电商乐得在实际生产中,根据需要研发了自己的中间件 Cetus,并且在不久前开源。
Cetus 主打稳定、高性能和对开发友好,并且以 OneProxy 等出色中间件为追赶目标。为了深入了解它的具体设计思路与工作流程,开源中国采访了 Cetus 负责人王斌。
据了解,Cetus 这个英文翻译成中文是“鲸鱼座”,他们把这个项目命名为 Cetus,一方面是想让 MySQL 更加强大,另一方面鲸鱼座代表了胸怀宇宙的情怀,符合了乐得想把 Cetus 做得更好、更长久的愿景。
Cetus 专注于性能、稳定和分布式事务,目标是做一款可以媲美 OneProxy 和 TDSQL 等商业软件的中间件。相比其它开源数据库中间件,Cetus 会更加贴近用户,兼顾开发和整体效率,同时规避了影响数据库中间件稳定和性能的误区。
Cetus 位于应用程序与 MySQL 数据库之间,作为前端应用与数据库的通讯。其中,前端应用连接 LVS 节点,LVS 节点映射端口到多个 Cetus 服务,后者通过自身的连接池连接到后端的数据库。
Cetus 主要的功能模块包括以下五个部分,分别是读写分离、分库、SQL 解析、连接池和管理功能。另外,Cetus 的整体工作流程分为:
Cetus 读取启动配置文件和其他配置并启动,监听客户端请求;
收到客户端新建连接请求后,Cetus 经过用户鉴权和连接池,判断连接数是否达到上限,确定是否新建连接;
连接建立和认证通过后,Cetus 接收客户端发送来的 SQL 语句,并进行词法和语义分析,对 SQL 语句进行解析,分析 SQL 的请求类型,必要时改写 SQL,然后选取相应的 DB 并转发;
等待后端处理查询,接收处理查询结果集,进行合并和修改,然后转发给客户端;
如果收到客户端关闭连接的请求,Cetus 就会判断是否需要关闭后端连接,如果需要就关闭连接。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论