Week6
本周学习内容:
分布式存储:
MySQL自己提供了主主、主从等架构方案,借助binlog实现。
有第三方实现的中间件提供数据分片,读写分离,分库分表能力,MyCat。(数据分片需要提前就设计好,比如要分三个库,还是五个库等,取模存储的时候,就用设计好的方案执行)
集群伸缩:
集群伸缩涉及到数据迁移的问题,就涉及到数据如何路由,如何存储。如何保障数据不丢失,加入新的机器,将旧的数据迁移到新的服务器上,正常对外提供服务。
CAP原理:
分区容忍性是分布式系统中必须接受的。数据的一致性和可用性需要挑选一个满足。不能同时满足,就是CAP原理。具体系统中选择AP还是CP,根据实际场景决定。
Cassandra架构:
Cassandra的架构是有多个服务器组成集群,客户端连接任意一台服务器。写数据时,同时写三份到不同服务器上,如果两台写成功,即返回给客户端成功。进行了冗余存储,保障了数据安全。
Hbase架构:
低层依赖hdfs实现数据存储。基本架构分为主节点HMaster,从节点HReginServer,注册中心ZooKeeper。HMaster注册在ZooKeeper上,多节点组成集群。对key进行计算出存储数据的位置。应用程序从ZooKeeper获取HMaster的地址,访问后,获取HReginServer的地址,然后访问获取数据。
Doris架构:
基本的架构由管理服务器和存储服务器组成。管理服务器做集群实现高可用。存储数据时,至少写三份,保证数据不丢失。管理服务器对存储服务器地址配置管理,心跳检测,故障恢复,向应用服务器返回存储服务器地址的功能。如果有程序宕机进行故障恢复时,需要将旧数据完整迁移到新的服务器,才能开始提供服务。
ZooKeeper架构:
ZooKeeper必须为奇数的节点,便于选举leader。以树状结构存储数据,并提供方便的Watcher机制,便于应用程序及时listen集群节点的变化。也可以使用ZooKeeper做分布式锁实现。
评论