随着互联网和分布式相关技术的发展,单节点已经很难提供当前软件运行的基本资源。集群成为主流的架构风格,所谓集群指的是原来有一个节点来完成的工作,现在有很多节点配合来共同完成,分散压力,同时也提高系统本身的可用性。集群模式下读操作具有幂等性,任何节点提供服务都没有问题,但是对于写操作,必须提供统一的操作入口,由该入口进行数据的分发,采用多数派理论达成共识。
本文结合博主的理解,整理出一下三种集群方案,方便大家理解。
指定主节点模式
该模式要求所有子节点指定自己的主节点,本身搭建的时候就老大就已经确认,所有的小弟只要承认老大的角色就可以成为一个集群。新节点加入,只需要承认集群中的老大即可。典型软件包括:elasticsearch,storm等。
穷举子节点模式
该模式在搭建集群之初,老大节点已经确认,同时需要列出集群中的所有小弟节点。在没有配置中心的情况下,新增小弟节点需要修改所有节点的配置,添加的新的小弟,扩展性较差。典型软件为hadoop的集群。
集群自选举模式
该模式搭建集群的时候节点具有对等性,由集群自己根据特定的共识算法(paxos,raft,bully),选举出集群的老大节点。集群搭建比较简单,但是老大节点宕机之后需要一定的时间选举出新的老大。典型软件包括:zookeeper,redis5,canssandra等。
以上是本人整理的几种模式,欢迎大神拍砖交流。