mysql集群

1.MySQL高可用集群原理
(1)数据库的主从架构与分库分表
数据量大,使用MQ削峰。 但是数据库本身的性能得不到提升。
数据库提升,基于分布式解决方案。最为常见的MySql以及ShardingSphere框架,来分库分表。
单机---->集群
(2)MySql主从同步
在这里插入图片描述
在MySQL运行的过程中,打开BinLog日志,在从库上起一个线程,与主库链接。监听主库日志,拉取数据。
对MySQL来说,性能是最高的。
BinLog默认不开。

2.MySQL主从集群
注意时间同步。启用ntp服务。
在这里插入图片描述
在这里插入图片描述
主从同步,以库为单位。
show master status

GTID同步集群
本质是基于BinLog来实现同步。它会基于事务的ID,同步。准确性更高一点。

3.异步复制和半同步复制
在这里插入图片描述
半同步可以降级为异步。
主从的状态是没有办法切换的。

4.高可用方案

让主从可以切换。
MMM
主主复制
在这里插入图片描述
VIP,虚拟IP,对应真实的IP。
VIP漂移。
基本要淘汰。缺陷,容易丢失事务。 高可用不行。
MHA
在这里插入图片描述

MGR
在这里插入图片描述
多主模式
单主模式
一个集群最多支持9个节点

分库分表方案介绍
(1)垂直分片:
在这里插入图片描述
整体数据量大,有作用。
只是单个表数据量大,并行。

(2)水平分片在这里插入图片描述
缺点,不好扩容。

常用策略:
取余\取模:存放均匀,扩容麻烦
按照范围分片: 容易扩容, 数据分布不均
按照时间分片:毕节容易交热点数据区分出来
按照枚举值分片:例如按地区

----思路:
首先数据按范围分片,保证扩容不用迁移数据。使用Redis记录每个月的分片情况,每个月份,取模的方式不一样,保证每个月的数据存放均匀。
取模的时候可以加权,让数据尽量平均。

事务一致性问题:
保证多个分片之间的事务一致。
跨节点查询问题:

跨节点分页、排序函数

主键避重的问题

公共表处理

DBLE 专门只做MySQL的分库分表。


Apache ShardingShpere(可以查看中文网站内容)
分布式数据库解决方案

ShardingJDBC 客户端分库分表。和应用程序在一起。数据分片。
在这里插入图片描述
ShardingProxy 数据库代理端。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ShardingSphere 已于 2020 年 4 月 16 日成为 Apache 软件基金会的顶级项目。
在这里插入图片描述
连接、增量 和 可插拔 是 Apache ShardingSphere 的核心概念。
连接:通过对数据库协议、SQL 方言以及数据库存储的灵活适配,快速的连接应用与多模式的异构数据库;
增量:获取数据库的访问流量,并提供流量重定向(数据分片、读写分离、影子库)、流量变形(数据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服务质量分析、可观察性)等透明化增量功能;
可插拔:项目采用微内核 + 三层可插拔模型,使内核、功能组件以及生态对接完全能够灵活的方式进行插拔式扩展,开发者能够像使用积木一样定制属于自己的独特系统。

inline 不支持范围查找;(只能用id)
standard 标准,支持in ,=,between (只能用id)
complex策略,支持多个字段,分片策略。
hint 策略,按照与SQL条件无关的条件去分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值