大型网站架构模式【大型网站技术架构.核心原理与案例分析】(阅读分享)

这本书分几个章节,其中有一个值得和大家分享的技术知识。

大型网站架构模式中引入了模式概念:每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重工作。

模式有几种:有分层、分割、分布式、集群、缓存、异步、冗余、自动化、安全

1、分层:简单说就是横向分,比如将网站软件系统分为应用层、服务层、数据层

2、分割:简单说就是纵向分,比如说在应用层上,将不同业务进行分割,将购物、论坛、搜索、广告分割成不同的应用。

3、分布式:分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着可使用更多的计算机完成同样的功能,

计算机越多,能够处理的并发访问和数量就越大。

分布式方案:分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算、分布式配置、分布式锁、分布式文件等

4、集群:使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块(比如网站的首页),还需要将独立部署的服务器集群化,即多台服务器部署相同的应用构成一个集群,

通过负载均衡设备共同对外提供服务。

5、缓存、cdn、

反向代理:(反向代理属于网站前端架构的一部分,部署在网站的前端,当用户请求到达网站的数据中心时,最先访问到的就是反向代理服务器,这里缓存网站的静态资源,无需将请求

继续转发给应用服务器就能返回给用户)

本地缓存、分布式缓存。

6、异步:系统耦合的手段除了前面提到的分层、分割、分布等,还有一个重要手段是异步,业务之间的消息传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行。

在单一服务器内部可通过多线程共享内存队列的方式实现异步,处在业务操作前面的线程将输出写入到队列,后面的线程从队列中读取数据进行处理;在分布式系统中,多个服务器集群通过分布式消息队列实现异步,

分布式消息队列可以看作内存队列的分布式部署。异步架构是典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以变化而不互相影响,这对站扩展新功能非常便利。除以之外,使用异步消息队列还有如下特性。【提高系统可用性、加快网站响应速度、消除并发访问高峰】

7、冗余:指数据冗余备份,这样某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器上。数据库定期备份。冷热备份。

8、自动化:在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前大型网站的自动化架构设计主要集中在发布运维方面。

9、安全:网站安全架构在安全方面也积累了许多模式,如密码、手机校验码进行身份认证;登录、交易等操作对网络通信进行加密,xss攻击、sql注入、编码转换等,垃圾信息、敏感信息过滤等等。

案例:架构模式在新浪微博的应用

该案例主要应用点与是面试会问到的常见问题,关于高并发。 新浪使用异步推拉结合的模式,用户发表微博后系统将微博写入消息队列后立即返回,用户响应迅速,消息队列消费者任务将微博推送给所有当前在线粉丝的订阅列表中,非在线用户登录后再根据关注列表拉取微博订阅列表。由于微博频繁刷新,新浪微博使用多级缓存策略,热门微博和明星用户的微博缓存在所有的微博服务服务器上,在线用户的微博和近期微博缓存在分布式缓存集群中,对于微博操作中最觉的“刷微博”操作,几乎全部者是缓存访问操作,可以获得很好的系统性能。为了提高系统整体可用性和性能,启用了多个数据中心。这些数据中心既是地区用户访问中心,用户可以就近访问最近的数据中心以加快访问速度,改善系统性能;同时也是数据冗余复制的灾备中心,所有的用户和微博数据通过远程消息系统在不同的数据中心之间同步,提高系统可用性。

疑问之处:该书中提到了2012年年初12306故障事件,如果12306开始设计架构时不采用提前放票抢票的方式进行架构的设计,那么也不会出现高并发抢购秒杀的现象,也就不会让服务器不堪重负。

那么,想问下作者如果不采用零点开始出售若干天后的车票的话,那么还有什么好的方法?书中并没有明确的回答,这是留给读者的疑问。再次反复翻阅书籍,段落的最后两句话,貌似给提示了一些,说是“如果能控制并发访问量,很多棘手的技术问题也就不是什么问题了。”像是后来引入的排队机制、分时段售票,然而做为开发者都是喜欢刨根问底的,大家觉得还有哪方面,12306做了一些技术上的落地?

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛慢慢向上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值