Atlas调研

简介

  • 奇虎360的一个mysql数据库中间层项目
  • 在mysql官方推出的mysql-proxy0.8.2的基础上改的
  • 基于服务端的中间件
  • git地址

相比于mysql-proxy,Altas有哪些优势:

  • 主流程中的Lua脚本用C重写
  • 网络模型,线程模型重写
  • 实现了“真正意义”上的连接池,真正连接复用
  • 优化了锁机制,性能提高数十倍
  • 官方mysql-proxy主库宕机从库亦不可用,Atlas优化为可读不可写
  • ip过滤
  • 分表支持
  • dba可平滑上下线db
  • 自动摘除宕机db
  • ...

分表功能

为了支持分表,需要增加分表设置

tables = $db_name
    .$table_name
    .$partition_column_name
    .$table_count

例如

tables = waka:sku:id:100

数据库名叫waka
表名叫sku
分表字段叫id
总共分为100张表

这100张子表需要用户手动逐个建立的,sku_0, sku_1, sku_2, … sku_99,并且所有的子表必须在一个数据库里。

Atlas支持select, delete, update, insert, replace操作,它会根据$partition_column_name 的值来对表的个数进行取模,以定位到sql请求要落到哪个子表。

需要注意的是,sql语句必须带上分表id作为查询条件,如果不带上id,则会提示stu表不存在。

参考

架构师之路 atlas调研笔记

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容