Cetus是由C语言开发的关系型数据库MySQL的中间件,主要提供了一个全面的数据库访问代理功能。Cetus连接方式与MySQL基本兼容,应用程序几乎不用修改即可通过Cetus访问数据库,实现了数据库层的水平扩展和高可用。

主要功能特性

Cetus分为读写分离和分库两个版本。可通过编译参数选择适合的版本。Cetus为了更好的提供服务,选了单进程模式,单进程特点鲜明,用情专一,无锁模式更能大大的提升单个实例的效率。另外Cetus还支持对用户透明的各项高大上功能,例如分布式事务、连接池、结果集压缩、安全管理、状态监控、Tcp Stream传输等等。

针对读写分离版本:

  • 单进程无锁提升单个实例效率

  • 支持透明的后端连接池

  • 支持SQL读写分离

  • 增强SQL路由解析与注入

  • 支持prepare语句

  • 支持结果集压缩

  • 支持安全性管理

  • 支持状态监控

  • 支持tcp stream流式

  • 支持域名连接后端

  • SSL/TLS支持

  • MGR支持

  • 读强一致性支持(待实现)

针对分库版本:

  • 单进程无锁提升单个实例效率

  • 支持透明的后端连接池

  • 支持数据分库

  • 支持分布式事务处理

  • 支持insert批量操作

  • 支持有条件的distinct操作

  • 增强SQL路由解析与注入

  • 支持结果集压缩

  • 具有性能优越的结果集合并算法

  • 支持安全性管理

  • 支持状态监控

  • 支持tcp stream流式

  • 支持域名连接后端

  • SSL/TLS支持

  • MGR支持

  • 读强一致性支持(待实现)

功能模块

Cetus 主要的功能模块包括以下五个部分:

1.读写分离

2.分库

3.SQL解析

4.连接池

5.管理功能

Cetus 整体工作流程图如下


 整体工作流程如下所述:

1.Cetus读取启动配置文件和其他配置并启动,监听客户端请求;

2.收到客户端新建连接请求后,Cetus经过用户鉴权和连接池判断连接数是否达到上限,确定是否新建连接;

3.连接建立和认证通过后,Cetus接收客户端发送来的SQL语句,并进行词法和语义分析,对SQL语句进行解析,分析SQL的请求类型,必要时改写SQL,然后选取相应的DB并转发;

4.等待后端处理查询,接收处理查询结果集,进行合并和修改,然后转发给客户端;

5.如收到客户端关闭连接的请求,Cetus判断是否需要关闭后端连接,关闭连接。

【Cetus 介绍】相关推荐

  1. cetus权限连接主从mysql_网易开源中间件 -Cetus监控模块

    01 概述 本文主要对Cetus的监控模块的使用及原理进行介绍,并介绍Cetus使用过程中,监控模块常见的问题及解决方法. Cetus监控模块拥有独立的监控线程,主要是对Cetus后端各个MySQL实 ...

  2. MHA+Cetus+Mysql搭建读写分离的高可用集群

    架构图 Centos配置 免密登录 #先修改hostname(也会影响relay-log的名字,如果主从复制已经开始了,再修改hostname会导致主从复制断开),避免后续ssh key相互覆盖 ho ...

  3. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  4. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  5. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  6. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  7. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  8. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

  9. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

最新文章

  1. hibernate4中取得connection的方法
  2. 人工智能的大统一理论? | 智源大会-「人工智能的数理基础」专题论坛
  3. SAP MM供应商主数据表
  4. 华为_H3C_Juniper设备常规巡检命令
  5. Oacle 开窗函数 分析函数
  6. 我的WCF之旅(13):创建基于MSMQ的Responsive Service
  7. why SpringComponentScanServer is needed
  8. 微信小程序API之getSystemInfo
  9. linux查找符合条件的文件并删除
  10. Infortrend新技术解决高效与节能的矛盾
  11. Capture One Pro 22 for Mac(RAW图像处理软件)
  12. android4g主板,4G安卓核心板
  13. 定时炸弹?揭露AmazonBasics电池背后的秘密
  14. CRM如何维护客户关系?CRM成功案例分析
  15. 彼时彼刻恰似此时此刻
  16. 阿里云建站百度收录吗?
  17. 计算机科学技术应用任务书,计算机科学与技术专——专业实习任务书.doc
  18. ROS2学习笔记22--使用launch启动/监听多个node节点
  19. C语言之负数的左移/右移运算
  20. MySql 8.0.19安装

热门文章

  1. 并发编程的15 条建议
  2. 喜马拉雅、ctrip、b站、流利说、蜻蜓FM、爱回收前端面试经历
  3. RFID军队资产管理可视化平台-部队资产管理系统
  4. 最快方法求最长上升子序列(LIS)+最长公共子序列(LCS)模板(C/C++)
  5. Navicat Premium for Mac的破解教程
  6. STM32F407的CAN通信实验
  7. 这款智能挤奶器,帮助哺乳期妈妈自动挤压母乳
  8. 了解一下什么是奶水供需平衡,哺乳期,奶水“没”了必是真的没了
  9. Ajax渲染+图片服务器
  10. jquery.reveal_使用jQuery Reveal插件构建弹出模态窗口