分片架构设计技巧

Es集群设计技巧

  节点可以配置为不同角色,通过选举master实现集群管理

  Coordinating:协调节点;Master:管理节点;Data:数据存储节点;

  数据是按照索引分片的,不是按照节点分片。为了保证高可用,每个分片可以有多个副本

  bully和 raft算法

  master和data混合部署

    节点同时为master和data  

    每个节点都可以接受和处理客户端请求,写入请求会转发到数据主分片的node

    适合数据量不大的业务

  master和data分离部署

    master与data 分离部署,master节点约为3或5个,data节点可以有几十个

    master节点 不处理读写请求,只是管理集群。data节点处理读写请求和存储数据

    适用于数据量比较大的业务

  coordinationg 分离部署

    master节点约为3或5个,data节点可以有几十个,coordinating节点2个以上

    master节点管理集群,coordinating节点读写聚合,data节点负责数据存储

    适用于数据量比较大,读写请求比较复杂的业务

  cross cluster replication

    两个集群 leader负责读写数据,follower复制数据

    适合本地化聚合存储

    

redis cluster设计技巧

  cluster为多个分片,不同分片保存不同数据

  每个分片内部通过主备复制保证可用性

  分片内部自动实现master选举,但是不依赖哨兵,cluster本身具备分片选举的能力

  客户端连接需要特定实现,如jedisCluster,cluster有特有命令

  

  数据分布和路由

    所有key按照hash分为16384个槽位,将槽位分给分片

    节点之间通过gossip交换数据,节点变化时会自动更新集群信息

    每个节点都有所有key的分布信息

    client连接任意节点,节点使用move命令告诉数据的实时位置

mangodb/hdfs 设计技巧

  mangos sharding架构

  mangos

    独立部署代理程序,应用程序请求发给mangos

    可以和应用程序部署在一起,可以和shard服务器部署在一起

    为了提升性能  mangos会缓存config server上的cluster配置信息

  config server

    存储集群的元数据

    自身通过replica set实现高可用

    当config server挂掉时 cluster 进入read only状态

  shard

    存储分片数据的服务器

    通过replica set保证可用性

    如果全部挂掉,分片无法访问

 

  HDFS架构

    namenode 管理集群,保存元数据

    datanode   保存数据,block

    journalnode   监控并记录日志,被standby节点监听拉取日志,至少3个多数日志复制写入才算成功

    failovercontroller  namenode中独立进程,监控状态,依赖zk实现高可用

 

 

 

 

posted on 2022-12-15 19:23  李某人的窥视  阅读(31)  评论(0编辑  收藏  举报

导航