下面是我们认为的一些可伸缩性的最佳实践:
1、异步;尽可能的使用异步,同步调用会导致两个服务的可用性绑在一起,意味着一个服务出问题或变慢,另一个也会受到影响,这点也是eBay一直强调的;
2、泳道设计;错误隔离机制,避免一个失败影响全局,这种机制也有助于错误查找和代码替换;
3、缓存;在所有层次均使用缓存,例如数据、页面、页面片段等;
4、监测;从用户角度来看系统的性能。这包括从外部网络来对系统进行性能的监测,以及内部的系统间交互次数以及时间的监测;
5、数据复制;一方面是为了容灾,另一方面是为了提供多个用于读的数据库,降低写库的压力;
6、拆分;包括了应用的拆分以及数据库的拆分;
7、尽量少的使用数据库特性;尽可能的把数据库仅作为一个在线存储的功能而使用,不要把业务逻辑放在数据库里,否则将来会非常难扩展;
8、缓慢发布;发布时应缓慢发布,以保证新版本是正常的,避免由于某个压力测试时没测到的点,导致全站出问题;
9、压力以及性能测试;在发布前测试性能,尽管这不一定能发现全部问题,因此在发布前仍然要做好回滚的方案;
10、容量规划;提前判断系统能支撑多大的量,并做好扩容计划;
11、回滚;每次都要做好回滚的准备;
12、根源分析;确认有办法找到线上问题的根源所在,从而能够真正的解决问题;
13、从一开始就要注重质量;质量不能仅靠测试来保证,必须从设计阶段开始就去保证。
译注:
以上说的这十三点可谓是构建可伸缩系统的金玉良言,但可惜缺乏了实例引导,没有经验的同学估计会很难看明白为什么一定要这样做,如果有些实例来说明的话,就更帅了!
分享到:
相关推荐
可伸缩性最佳实践:来自eBay的经验
本文将深入探讨MySQL与Oracle在性能、可伸缩性以及最佳实践方面的比较,并通过代码示例来展示它们在实际应用中的表现。 MySQL和Oracle在性能和可伸缩性方面各有优势。Oracle适合大型企业和数据密集型应用,而MySQL...
2. **可伸缩性最佳实践**:这部分内容会讨论如何设计和实施能够处理高并发和大数据量的系统。这可能包括负载均衡、缓存策略、水平扩展、数据库优化等策略,旨在确保系统的高效运行和扩展能力。 3. **使用负载均衡...
【标题】:eBay架构——可伸缩性最佳实践 【描述】:eBay作为全球最大的电子商务平台,其架构设计对于可伸缩性有着至关重要的要求。本文分享了eBay在应对海量用户和数据压力时所采取的可伸缩性策略。 【标签】:...
### 开发者最佳实践日——高可用和可伸缩架构详解 #### 一、高可用的概念与实现 ##### 1.1 高可用定义 在IT领域,“高可用”(High Availability, HA)通常指的是系统在面对单点故障时能够维持正常运行的能力。...
- **可伸缩性**:通过添加更多节点,可以增加处理能力,适应工作负载的增长。 3. **规划最佳实践**: - **消除SPOF**:确保包括网络、存储和操作系统在内的所有组件都有冗余。 - **负载均衡**:利用Net服务和...
这种架构风格在近年来得到了广泛的关注和采纳,因为其能够提高系统的可伸缩性、灵活性和可维护性。 微服务架构的发展历程可以追溯到2011年,当时的理念是将服务设计得更小巧、专注,以此提升系统的可管理性。James ...
**VB.NET可伸缩性技术手册(PDG)** 在软件开发中,可伸缩性(Scalability)是一项至关重要的特性,它关乎程序在面对负载增加、数据增长或用户需求变化时,能否有效地扩展和适应。VB.NET作为.NET框架的一部分,提供了...
这些部分不仅提供了云计算的理论知识,还提供了实际操作的指导,帮助开发者和架构师实现高可用、灵活、可伸缩的云计算环境。 文档中提到的“IT资产作为配置的资源”是云计算中的一个重要概念,意味着资源可以按需...
Oracle真正应用集群(RAC,Real Application Clusters)是一种高可用性和可伸缩性的数据库解决方案,它允许多个服务器节点共享同一数据库实例,从而提供无中断的服务和性能增强。RAC的最佳实践旨在优化集群的性能、...
该主题涵盖了eBay成长过程中架构和实施方面的最佳实践,以及如何在24×7x365环境下使其基础架构平稳地具有可伸缩性特征。它囊括了几乎所有大规模系统必备的特性,比如可扩展性、可用性和可管理性等。 具体而言,...
首先,从标题“基于 TiDB 与 Flink 的实时数仓最佳实践的白皮书.pdf”来看,该白皮书主要涉及的知识点应包括TiDB与Flink的使用,以及它们在构建实时数据仓库方面的最佳实践。 TiDB是一款开源的分布式关系型数据库,...
本文为您提供了在 Microsoft ADO.NET 应用程序中实现和获得最佳性能、可伸缩性以及功能的最佳解决方案;同时也讲述了使用 ADO.NET 中可用对象的最佳实践;并提出一些有助于优化 ADO.NET 应用程序设计的建议。 本文...
- **应用架构调优**:优化数据访问层、缓存机制、异步处理等,采用微服务架构可提高系统的可伸缩性和可维护性。 #### 五、调优过程中的注意事项 在进行调优过程中,需要注意以下几点: - 在没有明确且共同认可的...
第7条 编程中应知道何时和如何考虑可伸缩性 14 第8条 不要进行不成熟的优化 16 第9条 不要进行不成熟的劣化 18 第10条 尽量减少全局和共享数据 19 第11条 隐藏信息 20 第12条 懂得何时和如何进行...
ASP.NET是微软公司推出的Web应用程序框架,用于构建高性能、安全且可伸缩的网站和Web应用程序。对于初学者来说,掌握ASP.NET的关键概念和技术是非常重要的。以下是对标题和描述中涉及的五个实践的详细说明: **实践...
4. **可伸缩性**:可伸缩性是指菜单可以根据用户的操作动态地展开或折叠。这种特性使得用户可以快速隐藏不相关的部分,聚焦于当前需要的信息,同时在需要时轻松访问更多选项。 5. **实现技术**:在前端开发中,可以...