zoukankan      html  css  js  c++  java
  • 分库分表数据库中间件对比

    (一)关键问题

    1.读写分离

    2.分库分表

    3.类别

    • lib库

    1)业务直接到数据库,少一层proxy效率更高

    2)没有proxy的lvs的单点问题

    • proxy

    1)统一管理所有到数据库的连接,连接复用

    2)基础查询功能抽象,减少代码耦合

    3)易于实现监控、数据迁移、连接管理等功能

    (二)sharding-jdbc(开源,lib)

            当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架

    • 功能

    1)以jar包形式提供服务

    2)分片灵活,支持等号、between、in等多维度分片

    3)sql解析,支持聚合、分组、排序、limit、or等

    • 结构

    • 特点

    1)分片规则:策略自定义、复数分片数

    2)JDBC规范重写:针对DataSource、Connection、Statement、PreparedStatement和ResultSet接口封装

    3)sql解析:druid

    4)sql改写:修改逻辑表名->真实表名;替换不支持的功能,如:avg->sum和count

    5)sql路由:单表路由、binding表路由、笛卡尔积路由

    6)sql执行:多线程并发执行sql

    7)结果归并:遍历类、排序类(归并排序)、聚合类(比较型、累加型、平均型)、分组类

    (三)mycat(开源,proxy)

            社区爱好者在阿里cobar基础上进行二次开发,解决了cobar的一些问题,且加入了新的功能。

    • 功能

    1)遵守mysql原生协议

    2)基于心跳的自动故障切换

    3)支持读写分离,支持mysql主从

    4)支持sum、count、max等聚合,支持跨库分页

    5)支持服务降级

    6)安全,IP白名单、sql注入攻击拦截、prepare预编译

    • 原理

    拦截:分片分析、路由分析、读写分离分析、缓存分析

    (四)DBproxy(开源,proxy)

            针对atlas进行改进,形成了新的高可靠、高可用企业级数据库中间件DBProxy

    • 功能

    1)读写分离

    2)负载均衡

    3)slave故障感知&摘除

    4)连接池

    5)自定义sql拦截&过滤

    6)流量分组&控制

    7)监控状态

    (五)atlas

            360团队基于mysql proxy把lua用c改写,在高并发下经常会挂掉。

    (六)oneproxy(不开源,proxy)

            基于mysql协议的数据库中间件。利用c进行开发的,专注于性能和稳定性。

    • 功能

    透明sql路由(实现后端mysql数据库的集群化部署)和流量分析(为上层应用和底层数据库集群提供丰富的性能监控功能)。

    1)复用数据库连接,降低数据库并发连接数

    2)即时发现和剔除不可用的后端节点,转发应用请求实现高效故障隔离

    3)内置守护进程模式和ha vip机制,确保高可用

    4)查询语句分离,跨分片结果集合并,根据分片并行执行sql

    5)读写分离

    6)对sql语句进行安全检查,拒绝危险的DDL操作

    7)分别设置前端应用和后端数据库的sql请求频率,实现QoS控制

    8)实时透明分析流量,实时统计sql和事务的运行时间,分析事务的sql结构

    •  特点

    语言:C&C++开发

    网络事件:libevent框架

    内存分配:jemalloc优化

    QPS:单实例支持40W

    连接池:透明连接池的功能,具备mysqk企业版连接池效果

    主备:实现透明的读写分离路由

    安全:sql请求类别;请求IP;每个sql请求实时检查&拦截

    流量分析:IP维度、事务维度展示&分析

    稳定:内置高可用、也可与zookeeper等配合

    (七)vitess

            Youtube上产使用的,架构复杂

  • 相关阅读:
    第三天 moyax
    mkfs.ext3 option
    write file to stroage trigger kernel warning
    download fomat install rootfs script
    custom usb-seriel udev relus for compatible usb-seriel devices using kermit
    Wifi Troughput Test using iperf
    learning uboot switch to standby system using button
    learning uboot support web http function in qca4531 cpu
    learngin uboot design parameter recovery mechanism
    learning uboot auto switch to stanbdy system in qca4531 cpu
  • 原文地址:https://www.cnblogs.com/taoxinrui/p/6782791.html
Copyright © 2011-2022 走看看