10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

高可扩展分布式应用程序的架构原则

  • 2015-11-02
  • 本文字数:1054 字

    阅读完需:约 3 分钟

Elastisys 云平台诞生于瑞典默奥大学分布式系统研究小组。它由一组以预测性扩展引擎为中心的工具组成,可以自动扩展云部署。近日,其官方网站发表了一篇文章,介绍他们在高可扩展分布式应用程序设计和开发方面的经验。

他们将可扩展性分成了如下四个维度:

  • 性能可扩展:性能无法完全实现线性扩展,但要尽量使用具有并发性和异步性的组件。具备完成通知功能的工作队列要优于同步连接到数据库。
  • 可用性可扩展 CAP 理论表明,分布式系统无法同时提供一致性、可用性和分区容错性保证。许多大规模 Web 应用程序都为了可用性和分区容错性而牺牲了强一致性,而后者则有赖于最终一致性来保证。
  • 维护可扩展:软件和服务器都需要维护。在使用平台 & 工具监控和更新应用程序时,要尽可能地自动化。
  • 成本可扩展:总拥有成本包括开发、维护和运营支出。在设计一个系统时,要在重用现有组件和完全新开发组件之间进行权衡。现有组件很少能完全满足需求,但修改现有组件的成本还是可能低于开发一个完全不同的方案。另外,使用符合行业标准的技术使组织更容易聘到专家,而发布独有的开源方案则可能帮助组织从社区中挖掘人才。

以上各项,他们在设计应用程序时都会考虑和权衡。下面是他们根据上述内容总结出的 10 个设计原则:

  1. 避免单点故障:任何东西都要有两个。这增加了成本和复杂度,但却能在可用性和负载性能上获益。而且,这有助于设计者采用一种分布式优先的思维。
  2. 横向扩展,而不是纵向扩展:升级服务器(纵向)的成本是指数增长的,而增加另一台商用服务器(横向)的成本是线性增长的。
  3. 尽量减少应用程序核心所需要完成的工作。
  4. API 优先:将应用程序视为一个提供 API 的服务,而且,不假定服务的客户端类型(手机应用、Web 站点、桌面应用程序)。
  5. 总是缓存。
  6. 提供尽可能新的数据:用户可能不需要立即看到最新的数据,最终一致性可以带来更高的可用性。
  7. 设计时要考虑维护和自动化:不要低估应用程序维护所需要的时间和工作量。软件首次公开发布是一个值得称赞的里程碑,但也标志着真正的工作要开始了。
  8. 宁异步,不同步。
  9. 努力实现无状态:状态信息要保存在尽可能少的地方,而且要保存在专门设计的组件中。
  10. 为故障做好准备:将故障对终端用户的影响最小化。

关于分布式系统的设计,InfoQ 曾有过一些报道( 1 , 2 ),感兴趣的读者可以对照阅读。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-02 18:005035
用户头像

发布了 1008 篇内容, 共 433.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

利用YashanDB数据库支持大规模业务负载

数据库砖家

HarmonyOS的连接艺术之六: 使用 Deep Linking,灵活定义链接规则

最新动态

JPG 与 JPEG 有什么区别?是不是一样的?

左诗右码

结合YashanDB数据库构建多维度数据分析模型

数据库砖家

如何利用YashanDB数据库实现复杂数据结构存储

数据库砖家

怎样做企业数据备份和恢复?YashanDB一站式解决方案

数据库砖家

哈尔滨二级等保的核心价值:企业信息安全与合规的双重保障

等保测评

怎样利用YashanDB实现数据实时同步

数据库砖家

怎样做升级与维护YashanDB数据库降低系统风险

数据库砖家

GBIC 2025,大型企业不容错过的双场直播抢先看!

用友BIP

基于YashanDB数据库的实时数据备份与恢复方案

数据库砖家

怎样做结合YashanDB构建多租户数据库解决方案?

数据库砖家

快速搭建基于YashanDB的数据存储环境

数据库砖家

怎样做快速定位YashanDB数据库性能瓶颈解决方法

数据库砖家

手机长焦进化史:攀过十年,终抵云巅

脑极体

终端

利用YashanDB支持云端数据库部署的技术分析

数据库砖家

怎样做轻松迁移至YashanDB数据库避免数据丢失

数据库砖家

怎样做监控YashanDB数据库性能与资源使用?

数据库砖家

快速解决YashanDB数据库连接异常及故障排查指南

数据库砖家

如何实现YashanDB的多用户权限管理

数据库砖家

实现多子类型输入法:如何在 HarmonyOS中加载不同的输入模式

最新动态

使用YashanDB实现大数据存储与分析

数据库砖家

结合YashanDB实现智能告警与运维自动化

数据库砖家

怎样做结合YashanDB数据库提升企业信息化建设效率

数据库砖家

怎样做快速上手YashanDB数据库的详细步骤

数据库砖家

企业数据库备份策略优化:YashanDB创新方案

数据库砖家

设计YashanDB数据库的高效缓存策略

数据库砖家

怎样做企业级数据分析平台搭建?结合YashanDB实践

数据库砖家

怎样做全面配置YashanDB提升数据处理性能?

数据库砖家

怎样做设计适合企业的YashanDB数据库解决方案

数据库砖家

使用YashanDB数据库进行日志数据管理

数据库砖家

高可扩展分布式应用程序的架构原则_语言 & 开发_谢丽_InfoQ精选文章