分布式系统技术系列--选主算法

普通选举算法与分布式选举算法最大的区别在于对于“脑裂”问题的处理,普通选举算法可以任意制定规格,例如选举节点号较小或较大的节点做主,选择某个版本号较大的节点做主,只要保证选举的结果是唯一的,无二义性的,都是有效的选举算法。然而分布式选举算法不同,分布式选举算法面临最核心的问题是如何处理网络隔离问题,要保证在网络隔离的场景下,算法有且只有一个主的产生。

那么,分布式系统中选举的背景是什么呢?系统中有很多应用场景要类似主从架构,主服务器(Master)对外提供服务,从服务器(Salve)热备份,不提供服务但随时活着,如果Master出现宕机或者网络问题,Slave即可接替Master对外服务[......]

查看全文

分布式系统技术系列--Gossip算法

分布式 gossip[......]

查看全文

分布式系统技术系列--租约(lease)

分布式 租约[......]

查看全文

分布式系统技术系列--心跳(heartbeat)

分布式,心跳[......]

查看全文

设计模式六大原则(6):开闭原则

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。

解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

开闭原则是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统。开闭原则可能是设计模式六项原则中定义最模糊的一个了,它只告诉我们对扩展开放,对修改关闭,可是到底如何才能做到对扩展开放,对修改关闭,并没[......]

查看全文

1 2 3 4 5 6