[置顶] 可伸缩性, 可用性和稳定性模式 Scalability, Availability & Stability Patterns...

Scalability, Availability & Stability Patterns

在这个PPT中,你会发现大量词语在本站讨论过:
分布式缓存;数据网格计算;NoSQL;RDBMS;Http缓存如CDN 反向代理;CAP理论,并发模式(消息传递模式 软事务内存 数据流并发 状态共享并发);分区;复制。EDA事件驱动架构;负载平衡;并行计算(MapReduce模式 Fork/Join模式)。

由于难得一见的全面,需要反复多看几次,理清头绪。我下面就逐步诠释一下:

(1)Scalability可伸缩性,可伸缩性扣住“状态”这个关键词,2006年我就写了一篇状态对象:数据库的替代者,应该说当时已经隐约感觉到了状态这根主线,如今在这个PPT得到全面诠释,非常释然。状态又分为:
分区 Http缓存 RDBMS Sharding碎片 NoSQL 分布式缓存,数据网格,并发Concurrency.




PPT指出可 伸缩性是没有免费午餐,需要在以下因素权衡:
性能和可伸缩性
什么是性能问题?如果你的系统对于一个用户访问还很慢,那就是性能问题;
什么是可 伸缩性问题?如果你的系统对一个用户来说是快的,但是在高访问量下就慢了。

延迟和吞吐量
你要为如下目标奋斗:用可接受的延迟获得最大的吞吐量。

可用性和一致性
就是CAP原理,传统的集中式关系数据库只能获得CA。大量章节谈了 NoSQL,本站已经相关介绍,基本都已经涵括。

状态
在状态方面,首先谈的是Http缓存,反向代理:Varnish squid Nginx mode_proyx这些都很热门,通过CDN在离客户端最近布置状态服务器。

页面静态化主要归纳为Precompute content方面,很多人喜欢将动态页面静态化,变成html,通过引入AJAX异步,也是一种可 伸缩性提高手段,静态化实时性差,适合可以预先计算的页面,预先计算可以采取:朴素的crontab 或Java的Quartz框架,Gearman,hadoop云计算已经google的数据协议,亚马逊的Elastic MapReduce。通过设置http协议,使用客户端浏览器本地 缓存,加长http中失效期限,这些在国内被归纳为SEO范畴,也是可 伸缩性一个小章节。


(2)可用性这里意思应该是我们通常的可靠性概念,可用性包括复制Replication和失败恢复failover(过去称为 集群)。




何为可用性?是99.999%在线运行。7x24全天候运行。PPT讲了failover的复杂性已经fail back。

Replication复制性分Active复制(推)和Passive复制(拉),形式上分主从 双主 Tree和Buddy伙伴四种,这些技术是MySQL Oracle以及追求CP类 NoSQL数据库采取的同步策略。
主从Master-slave:主用来读写,可多个slave用来读;双主则是两个都用来读写;伙伴复制采取一对一结伴,类似Weblogic的 集群策略。


(3)稳定性包括let it crash (Akaa框架) SEDA Throttling.




其他
PPT将传统关系数据库和 NoSQL归纳为Service of Record SOR模式,讲了水平垂直伸缩,RDBMS的Sharding碎片技术包括分区和复制。

文章认为: ORM +富模型Rich domain model是一种反模式,会导致你就把精力浪费在照料数据库上。
避免方式是:重新思考你的数据,什么时候你需要ACID,什么时候可以从最终一致性中获得好处?不同种类数据有不同的需求。见本站过去讨论: ORM已经是过去的事情

文章认为除了关系数据库以外,对象数据库如db4o 以及 集群,如Terracotta兵马俑 ehcach都属于ACID。

缓存概念中,解释了什么是write-through,什么是write-behind,什么是 缓存的Eviction驱逐策略 比如先进先出FIFO;

在message-passing模式中,提到了Erlang Scala的Actors模型,最早提出由1973的Carl Hewitt,他比传统的类Class概念更加符合 OO

Actors模式特点:share nothing;隔离轻量处理,通过消息通讯;异步且非堵塞,因为不共享就不用同步。每个Actor有一个邮箱。

在Dataflow并发中提到,数据是On-demand, lazy装载懒加载数据(jdonframeowork通过domain events实现数据随用随取,见其 PPT说明)

该PPT将domain events明确为EDA架构,当然还有我们讨论的CQRS。并对Event Sourcing事件源进行了说明,如果有事件记录,就无需ORM,只要持久化事件就可以。

总之,该PPT是对近期热点模式进行总结。值得推荐一看。

 

可伸缩性, 可用性和稳定性模式

http://www.jdon.com/jivejdon/thread/38928
http://www.jdon.com/jivejdon/thread/38928
http://www.slideshare.net/jboner/scalability-availability-stability-patterns

介绍架构比较不错连接:

             

网站架构相关PPT、文章整理(更新于2009-7-15)

http://www.blogjava.net/BlueDavy/archive/2009/04/28/267970.html

 http://www.blogjava.net/BlueDavy/

转载于:https://www.cnblogs.com/ajian005/archive/2011/02/17/2753869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值