设计模式(或技术)为扩展性
-
10-07-2019 - |
解决方案
一些模式来记住:
- 无国籍的程序
- 松散耦合
- 异步
- 懒惰的加载
- 缓存
- 并行性
- 分区
- 路由
一些资源:
- 可伸缩性的最佳做法:经验教训,从eBay
- 性和一致性 介绍的亚马逊的技术博士Werner,
- Microsoft PDC'08演讲
- 最佳做法建立可伸缩云准备好服务的基础
其他提示
使用如无国籍作为可能。会更容易适应这个服务器群。
没什么是免费的-这下来到什么是可接受的妥协,以便满足业务目标。主要变量是:
- 成本
- 店
- 一致性
- 生存能力(例如,分区的容忍)
一个优秀的 纸 阅读的主题。
我相信一个好的指标将是审查"的费用/用户"曲线,并试图保持它的线性进展(假定可接受的费用每户是一个已知参数:-)
设计模式做挥作用,但它总体结构,最重要的。一个可能已经非常彻底的模块的水平,但遗漏网级别制约因素和可扩展性遭受的结果。
在一天结束的时候,我相信一个人必须问自己,(己):失败的类型X,如何许多的"用户"可能会影响到在多长时间?
总会有一个单点失败(单点故障)的地方,但一个工程师可以一个系统,使得这个单点失败是移动接近结束点(例如用户)。在许多情况下,单点失败是无法控制的应用程序,例如网络弹无法使用。
无论如何,我可以花时间在主题上...
POSA(模式面向软件构)的书是一个重要来源,这种模式。
POSA4, 尤其是有关分布式计算,但所有volumns是充分的可扩展性的模式。
我已经观察到与无国籍程序的逻辑是,它引入了其他许多其他要求就像锁定关数据库最终然后对工作的可伸缩性。
可以说,应用逻辑部署是无国籍跨服务器农场然后一个请求这是打两个节点的一集在同一时间我们已经介绍的概念,如DB锁定,以确保只有一个请求将处理。
我处理这种情况下,现在,不知道如何每个人都是处理这类无国籍的行为。
不隶属于 StackOverflow