1. 系统失败是很平常的事情:每年有1-5%的硬盘会报废,服务器每年会平均宕机两次,报废几率在2-4%几率。
2. 将一个大而复杂系统切分为多个服务:而且服务之间依赖尽可能的少,这样有助于测试,部署和小团队独立开发。例子:一个google的搜索会依赖100多个服务。ike:需要一套机制来确保服务的fault-tolerant,不能让一个服务的成败影响全局。
3. 需要有Protocol Description Language:比如protocol buffers。ike:这样能降低通信方面的代码量。
4. 有能力在开发之前,根据系统的设计来预测性能:在最下面有一些重要的数字。
5. 在设计系统方面,不要想做的很全面,而是需要抓住重点。
6. 为了增量做设计,但不为无限做设计:比如:要为5-50倍的增量做设计,但超过1000倍了,就需要重写和重新设计了。
7. 使用备份请求来降低延迟:比如一个处理需要涉及1000台机器,通过备份请求这个机制来避免这个处理被一台慢机器延误。ike:这个机制非常适合MapReduce。
8. 使用范围来分布数据,而不是Hash:因为这样在语义上比较简单,并且容易控制。ike:在大多数情况下语义比性能更重要,不要为了20%的情况hardcode。
9. 灵活的系统,根据需求来伸缩:并且当需求上来的时候,关闭部分特性,比如:关闭拼写检查。
10. 一个接口,多个实现。
11. 加入足够的观察和调式钩子(hook)。
12. 1000台服务器只需单一Master:通过Master节点来统一指挥全部的行动,但客户端和Master节点的交互很少,以免Master节点Crash,优点是,在语义上面非常清晰,但伸缩性不是非常强,一般最多只能支持上千个节点。
13. 在一台机器上运行多个单位的服务:当一台机器宕机时,能缩短相应的恢复时间,并且支持细粒度的负载均衡,比如在BigTable中,一个Tablet服务器会运行多个Tablet。
分享到:
相关推荐
分布式系统设计模式是指在分布式系统中,为了解决如何划分服务、如何部署服务以及如何组织服务间通信等问题而采用的一些通用方案和策略。这些模式能够在不同的分布式环境和应用场景中应用,以期达到系统设计的最优解...
分布式系统设计模式中著名的MapReduce模式就是一个典型的例子。MapReduce利用分布式计算来处理大规模数据集,通过Map任务将数据分割成独立块进行并行处理,然后通过Reduce任务将结果汇总。此外,Kubernetes的...
3. **设计模式**:探讨常见的分布式系统设计模式,如微服务架构、事件驱动架构、服务化拆分、API网关等,以及它们在实际项目中的应用。 4. **中间件技术**:介绍如消息队列(MQ)、分布式缓存、数据库分片、分布式...
分布式系统设计是现代互联网技术的核心组成部分,它涉及多个计算节点通过网络进行协同工作,共同处理大规模数据和提供高可用服务。这份"分布式系统设计PDF"资料对于任何希望深入理解这一领域的学习者,无论初级还是...
设计模式是软件工程中的一种最佳实践,它是在特定情境下为了解决常见问题而形成的可重用解决方案。设计模式不仅仅是代码结构,更是...通过深入理解和熟练运用这些模式,可以更好地应对Java编程和分布式系统设计的挑战。
通过CDIO教学模式,学生可以学习到如何设计和实现一个完整的分布式系统,从而提高学生的实践能力和创新能力。 在分布式系统的设计中,需要考虑多个因素,如系统的可扩展性、灵活性、可靠性和安全性等。为了设计一个...
分布式系统设计是现代信息技术领域中的核心概念,它涉及到多个计算机节点通过网络进行协作,共同完成一个复杂的任务。这种设计模式可以提升系统的可扩展性、容错性和性能,使其能够处理大规模的数据和高并发的用户...
2. 交互关系的复杂性:分布式系统中各个模块之间需要频繁交互,这导致系统设计和维护的复杂性增加。 3. 处理能力的不平衡性:由于应用分布在不同的硬件平台上,处理能力往往不均衡,需要通过有效的设计和管理来保证...
#### 第2章:分布式系统设计模式 ##### 服务定位模式 - **实际应用案例**: - **微服务架构中的服务注册与发现**:使用服务定位模式帮助定位和调用服务。 - **分布式存储系统**:通过服务定位模式管理数据访问。 ...
2. **CAP理论**:分布式系统设计的核心原则之一是CAP定理,它指出一个分布式系统不能同时满足一致性、可用性和分区容错性这三个特性。理解和权衡这三者在实际系统设计中的重要性是至关重要的。 3. **Paxos算法**:...
6.1.分布式系统设计_设计.pptx 6.2分布式系统设计_Dubbo.pptx 6.3分布式系统设计_ServiceComb.pptx 7.1分布式系统设计_治理.pptx 7.2分布式系统设计_存储.pptx 7.3分布式系统设计_缓存.pptx 7.4分布式系统设计_消息....
云计算提供了一种资源按需分配的模式,使得构建和运行分布式系统变得更加便捷。微服务架构将大型应用拆分为小型、独立的服务,每个服务都可以独立部署和扩展。服务网格作为微服务间的通信层,负责服务发现、负载均衡...
6.1.分布式系统设计_设计.pptx 6.2分布式系统设计_Dubbo.pptx 6.3分布式系统设计_ServiceComb.pptx 7.1分布式系统设计_治理.pptx 7.2分布式系统设计_存储.pptx 7.3分布式系统设计_缓存.pptx 7.4分布式系统设计_消息....
6.1.分布式系统设计_设计.pptx 6.2分布式系统设计_Dubbo.pptx 6.3分布式系统设计_ServiceComb.pptx 7.1分布式系统设计_治理.pptx 7.2分布式系统设计_存储.pptx 7.3分布式系统设计_缓存.pptx 7.4分布式系统设计_消息....
6.1.分布式系统设计_设计.pptx 6.2分布式系统设计_Dubbo.pptx 6.3分布式系统设计_ServiceComb.pptx 7.1分布式系统设计_治理.pptx 7.2分布式系统设计_存储.pptx 7.3分布式系统设计_缓存.pptx 7.4分布式系统设计_消息....
6.1.分布式系统设计_设计.pptx 6.2分布式系统设计_Dubbo.pptx 6.3分布式系统设计_ServiceComb.pptx 7.1分布式系统设计_治理.pptx 7.2分布式系统设计_存储.pptx 7.3分布式系统设计_缓存.pptx 7.4分布式系统设计_消息....