• 05-Mycat的概念


    Mycat的概念

    问题

    分库分表,分好分,分了怎么管理?

    解决方案

    分库分表以后,一定需要有一个管理软件来整合分下的库,分下去的表。否则,程序员将面临巨大的问题

    解决方案:例如mycat (我的猫)这种中间件,就可以帮我们解决

    Mycat的架构图

    mycat实际上,就是一个位于应用程序与数据库集群之间的中间件,它可以帮我们管理数据库集群,以及提供负载均衡能力

    img

    Mycat的特点

    1、它给数据库集群提供了一个透明代理

    2、它是Java语言开发的,调试和配置对于Java程序员来讲都是非常容易的

    Mycat的术语

    逻辑库(schema)

    逻辑库:用来替代分库后的不同的数据库的名称

    img

    逻辑表(table)

    逻辑表:显示在逻辑库的表的名称(从集群中,需要暴露给程序的表的名称)

    img

    分片表

    分片表:就是通过某种分片规则,位于不同的数据库的中数据库表(当然,分片表是逻辑表的一个)

    img

    不分片表

    不分片表:就是没有经过任何分片规则的表(当然,分片表是逻辑表的一个)

    节点主机

    所谓的节点主机,就是指安装了mysql数据库的服务器

    数据切分后,每个分片节点(dataNode)不一定都会独占一台机器,同一机器上面可以有多个分片数据库,这样一个或多个分片节点 (dataNode)所在的机器就是节点主机(dataHost),为了规避单节点主机并发数限制,尽量将读写压力高的分片节点(dataNode)均衡的放在不同的节点主机(dataHost)。 节点主机代表每一个单独的数据库!!

    img

    分片规则

    前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难度

    img

    分片规则

    Hash一致算法分片sharding-by-murmur

    假如:

    1、根据id进行分配,先取得id的hash值

    2、假设现在有4台数据节点,将4台数据节点映射到Hash环上

    3、将id的hash值,同样映射到Hash环上,然后顺时针查找距离该Hash值,最近的节点在哪儿

    4、数据将直接放置在距离最近的数据node上

    image-20201228154915009

    范围约定auto-sharding-long

    0-500W 在一个分片中

    500W-1000W 在一个分片中

    1000W-1500W 在一个分片中

    ……

    枚举分片sharding-by-intfile
    固定分片Hash算法rule1
    按日期分片sharding-by-date

    10天一个片

    取模范围约束sharding-by-pattern
    ……

    分片Hash算法rule1

    按日期分片sharding-by-date

    10天一个片

    取模范围约束sharding-by-pattern
    ……

    到此,Mycat的概念,就结束了!!!

  • 相关阅读:
    2023年软考什么时候报名,报名有什么条件?
    MySQL 表的约束
    跨境电商热潮:宣传与真实情况有何不同?
    2024年浙江大学金融硕士专业报考分析
    【JVM】垃圾回收
    leetcode 133. 克隆图
    8种超简单的Golang生成随机字符串方式
    HDFS 高可用分布式环境搭建
    两日总结十七
    学习一分钟,游戏“一会会”,你的节前Flag立正了吗?
  • 原文地址:https://blog.csdn.net/yangcan741147/article/details/114956470