MySQL中间件

Cobar

2018-04-26  本文已影响0人  Better朔

一、背景介绍

        在MySQL数据库中,由于表的越来越大,导致了在单机环境下的性能下降,所以采用中间件对大表进行分库分表。

从Cobar架构上看,Cobar作为中间件处于Application和MySQL SERVER之间,使应用能够透明地访问数据库而不用在乎后端的分布式结构:

Cobar架构图

之前在看到的一个中间件对比的博客:开源数据库中间件对比

二、Cobar解决的问题

分布式:

Cobar的分布式主要是通过将表放入不同的库来实现:

        1. Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分

        2. Cobar也支持将不同的表放入不同的库

        3. 多数情况下,用户会将以上两种方式混合使用

注意:

1. Cobar不支持将一张表,例如test表拆分成test_1, test_2, test_3.....放在同一个库中,必须将拆分后的表分别放入不同的库来实现分布式。

2. 考虑到高QPS,所以在Cobar上线前必须进行中间件的压测,并对结果进行分析。

HA:

在用户配置了MySQL心跳的情况下,Cobar可以自动向后端连接的MySQL发送心跳,判断MySQL运行状况,一旦运行出现异常,Cobar可以自动切换到备机工作。但需要强调的是:

        1. Cobar的主备切换有两种触发方式,一种是用户手动触发,一种是Cobar的心跳语句检测到异常后自动触发。那么,当心跳检测到主机异常,切换到备机,如果主机恢复了,需要用户手动切回主机工作,Cobar不会在主机恢复时自动切换回主机,除非备机的心跳也返回异常。

        2. Cobar只检查MySQL主备异常,不关心主备之间的数据同步,因此用户需要在使用Cobar之前在MySQL主备上配置双向同步,详情可以参阅MySQL参考手册

注:HA功能需要MySQL配置双向同步,但是MySQL双向同步在实际生产环境不稳定时会出现数据不一致的情况,所以建议不使用Cobae进行HA搭建。

具体的详细配置,在github上介绍的非常清楚,需要根据实际环境进行:

Cobar-github

Cobar-Quick-Start

上一篇下一篇

猜你喜欢

热点阅读