课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式系统是目前大多数程序员在开发软件的时候会经常用到的一个软件开发技术,下面我们就通过案例分析来了解一下,分布式系统常见模型类型都有哪些。
同步模型的使用简单。所有组件在所谓的同步轮次(synchronousround)中同时执行算法步骤。在同步模型中,消息送达的耗时是已知的,每个进程的速度也是确定的,即每个进程执行一个算法步骤的耗时是确定的。同步模型的主要问题是它不能很好地反映真实世界,与分布式系统的差别就更大了。在分布式系统中,我们向另外一个进程发送消息,肯定希望自己行大运,因为只有这样,才能保证消息一定发送到目标进程。好在我们可以利用同步模型获得理论结果,再把结果转换到其他模型。例如,在同步模型中时间是有保证的,如果一个问题在同步模型中都解决不了,那么在其他模型中,没有了时间的保证(例如,完美失效检测器就是这样一个模型),就更不可能解决这个问题了。
异步模型的使用相对复杂。在异步模型中,每个组件自行决定算法步骤的执行顺序,每一步的耗时也没有保证。虽然异步模型的描述很简单,也更接近真实世界,但是它仍然算不上正确地反映了真实世界。例如,在异步模型中,一个进程响应请求的时间有可能是无限长,但是在真实的项目中,一般会为请求设置一个超时限制,如果在此期间没有收到响应,将会中止请求并且报告异常。
在部分同步模型中,每个组件都了解一些关于定时的信息,它们要么使用近似同步的时钟,要么大致了解消息送达的耗时或者每个进程执行一个算法步骤的耗时。
进程的失效模式是分布式系统模型的一个属性,它是对进程失效种类的假设。崩溃-结束(crash-stop)失效模式的假设是:进程一直是正确的,直到它发生崩溃;崩溃之后,这个进程不会被恢复。还有崩溃-恢复(crash-recovery)失效模式,进程崩溃后会被恢复。有些算法还会把进程恢复到崩溃之前的状态。要做到这一点,恢复后的进程要么从持久存储中读取以前的数据,要么与同一群组的其他进程通信,获取所需的数据。需要指出的是,在有些群组成员算法中,一个崩溃之后再恢复的进程并不等同于没崩溃之前的原始进程。二者是否等同,取决于这是一个动态群组还是一个固定群组。
还有一种失效模式叫做忽略失效模式(omissionfailuremode),它的假设是进程不能接收或者发送消息。忽略有两种:进程接收不到消息,或者进程发送不了消息。为什么要了解这个呢?想想这种情景,实现分布式缓存的一组进程,如果其中一个进程无法应答其他进程的请求,只要它能收到其他进程的请求,那么这个进程的状态就是新的,它仍然可以响应来自客户的读请求。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。