MyCat头脑风暴

Posted ying-dong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyCat头脑风暴相关的知识,希望对你有一定的参考价值。

高并发高可用架构演进 :

   数据库、应用于一体?数据库与应用分离?数据库根据业务将表分到不同的库中?同一张表进行读写分离?表中数据根据需求分表

   其中Mycat数据库中间件起到了读写分离,分库,分表的作用

1.解决的问题

  读写分离 (mysql主从复制)/分库分表 ? 多数据源  ? Java程序需要进行多个数据源的切换 / Java程序与MySQL紧耦合    ——  Java程序与数据库解耦

   高可用 ? 集群与容错机制  高并发 ? 分库+分表   ——   解决高并发高可用对数据库的压力

2.怎样解决

  Mycat通过配置文件搭建一个逻辑数据库,向外暴露一个Mycat的访问接口[解耦] ,而底层通过多个数据节点DataNode(一个DataNode对应一个DataHost,而一个DataHost保证其高可用搭建读写分离集群writeHost,readHost(一主一从/双主双从)) [高可用],通过<table dataHost="">节点将不同业务的表分发到不同的库中,分散数据库压力,而相同表中数据量大时会遇到瓶颈,所以此时将表中数据根据<table rule="">根据分片规则分发到多个表中(不同库的不同的表),提高查询等的效率[高并发]

  而所有这些操作都在Mycat内部解决,对于Java程序来说完全透明,和平常一样进行SQL的传输即可,Mycat接到SQL语句,对其进行拦截,后根据配置的一系列分库分表规则等进行解析SQL,分析SQL(分片分析,缓存分析,路由分析......),分发到后台的物理数据库,得到结果对结果进行整合后传回

技术图片

 

 3.如何使用

  开发步骤 : 分析业务制定出分片规则等后配置好配置文件 --> 启动对应的物理数据库 -->使用Mycat执行建表操作

  读写分离 ?同一个DataHost的主从复制

  技术图片     

 

 

 

  分库  ? 表分到不同的库中

  分表  ? 数据分到不同的表中(不同的表又在不同的库中)

  

  

  

以上是关于MyCat头脑风暴的主要内容,如果未能解决你的问题,请参考以下文章

头脑风暴法整理大量观点用啥工具

近5年来头脑风暴优化算法的研究热点

10大好用的思维导图软件,开启你的头脑风暴!

《麦肯锡方法》第9章 头脑风暴-思维导图

《麦肯锡方法》第9章 头脑风暴-思维导图

面试总结: 头脑风暴题目