-
InTouch 2017培训资料中探讨的分布式协作难题
资源介绍
1.3 分布式协作的难点
当开发分布式应用时,其复杂性会立即突显出来。例如,当我们的
应用启动后,所有不同的进程通过某种方法,需要知道应用的配置信
息,一段时间之后,配置信息也许发生了变化,我们可以停止所有进
程,重新分发配置信息的文件,然后重新启动,但是重新配置就会延长
应用的停机时间。
与配置信息问题相关的是组成员关系的问题,当负载变化时,我们
希望增加或减少新机器和进程。
当你自己实现分布式应用时,这个问题仅仅被描述为功能性问题,
你可以设计解决方案,部署前你测试了你的解决方案,并非常确定地认
为你已经正确解决了问题。当你在开发分布式应用时,你就会遇到真正
困难的问题,你就不得不面对故障,如崩溃、通信故障等各种情况。这
些问题会在任何可能的点突然出现,甚至无法列举需要处理的所有的情
况。
注意:拜占庭将军问题
拜占庭将军问题(Byzantine Faults)是指可能导致一个组件发生任
意行为(常常是意料之外的)的故障。这个故障的组件可能会破坏应用
的状态,甚至是恶意行为。系统是建立在假设会发生这些故障,需要更