MySQL做分布式需要通过ndb的Cluster来实现。MySQLCluster是MySQL适合于分布式计算环境的高实用、高冗余版本。实现的步骤比较复杂,百度云案例:《MySQLCluster(MySQL集群)分布式》下载地址:
当前做分布式的厂商有几家,我知道比较出名的有“华为云分布式数据库DDM”和“阿里云分布式数据库”,感兴趣可以自行搜素了解下。
分布式数据库的几点概念可以了解一下。
数据分库:
以表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。
以表中的数据行记录为单位,把原有逻辑数据库切分成多个物理数据库分片,表数据记录分布存储在各个分片上。
路由分发:
在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。
读写分离:
数据库中对计算和缓存资源消耗较多的往往是密集或复杂的SQL查询。当系统资源被查询语句消耗,反过来会影响数据写入 *** 作,进而导致数据库整体性能下降,响应缓慢。因此,当数据库CPU和内存资源占用居高不下,且读写比例较高时,可以为数据库添加只读数据库。
C: Consistency 强一致性A:Availability 可用性
P:Pattition tolerance 分区容错性
一个分布式系统不可能同时满足CAP,只能满足两个
CAP只能三选二
CP:单点集群,满足一致性,可用性的系统,通常再可扩展性上不太强大 RABMS (mysql)
CP:满足一致性,分区容忍的系统,通常性能不是特别高 redis
AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些
在分布式系统中,P肯定是要满足的;所以只会有CP AP
AP:高可用,大部分系统架构的选择
CP:强一致性 redis MongoDb
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)