Chr*_*nce 25 design-patterns scalability high-availability
哪些设计模式或技术,你使用的是向专门针对可扩展性?
在我看来,像Flyweight模式这样的模式是工厂模式的专用版本,以提高高可伸缩性或在内存或存储限制内工作时.
你用过别人的吗?(数据库的非规范化等)当高可用性或可伸缩性是您的主要目标时,您是否发现规则会发生变化?
可能的情况是:
Pas*_*ent 45
想到的一些模式:
一些资源:
没有什么是免费的 - 它归结为为了实现您的业务目标而可接受的妥协.主要变量是:
阅读有关该主题的优秀论文.
我认为一个好的指标是检查"成本/用户"曲线并尝试将其保持为线性进展(假设每个用户可接受的成本是一个已知参数:-)
设计模式确实发挥了作用,但它是最重要的总体架构.一个人可能在模块级别上非常彻底,但由于错过了网络级别的限制和可扩展性.
在一天结束时,我相信一个人必须问自己(她自己):因为X型失败,有多少"用户"会受到影响以及持续多长时间?
在某处总是存在SPOF(单点故障),但是可以设计一个系统,使得该SPOF更靠近端点(例如用户).但是,在许多情况下,SPOF不受应用程序的控制,例如网络POP不可用.
无论如何,我可以在这个问题上花上几个小时......