快捷搜索: 王者荣耀 脱发

从ES、MongoDB、Redis、RocketMQ出发谈分布式存储

Redis

redis分片集群是多个支持主从故障自动切换的小集群组成的整个集群通过gossip协议通信,去中心化架构,客户端入口依赖客户端API

ES

ES没有从节点的概念,只有主分片和副分片的概念,一个数据节点既有主分片也有副分片,通过集群唯一的master进行统一管理,中心化架构,客户端入口是协调节点

MongoDB

MongoDB有三种节点,Config Server,Shard Server,Route Server,Config Server类似ES的master,中心化架构,Shard Server具有主节点和从节点的概念,和Redis类似,Route Server是guanli客户端统一入口,类似ES的协调节点,相比ES,MongoDB的架构要简单一些

RocketMQ

nameserver无状态,每个broker集群有一个主节点,若干个从节点,broker集群之间互相独立,类似Redis和MongoDB,可以看下之前的文章RocketMQ扩容缩容解决方案,客户端入口是nameserver,为什么nameserver可以无状态呢?因为nameserver不用像ES的master和MongoDB的Config Server一样,统一管理整个集群数据的分布,RocketMQ的数据单位是消息,存在于topic的某个队列下,并且broker拥有哪些topic都是由用户自己设置的,nameserver的作用是broker上报自己当前有哪些topic,队列,客户端也就是生产者消费者去nameserver查询指定的topic存在于哪些broker上,从而进行消费

经验分享 程序员 微信小程序 职场和发展