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的概念,就结束了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值