首页>>新闻中心>>建设知识

大型网站异步

来源: 本站    发布时间: 2016-02-16 21:09    阅读次数:

计算机软件发展的一个重要目标和驱动力是降低软件耦合性,事物之间直接关系少,就越少被彼此影响,越可以独立发展,大型网站架构中,系统解耦合的手段除了前面提到的分层、分割、分布等,还有一个重要的手段是异步,业务之间的消息传递不是同一步调用,二是讲一个业务操作分成多个阶段,每一个阶段之间通过共享数据数据方式异步执行协作。

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

异步架构是典型的生产者消费者模式。两者不存在直接调用,只有保持数据结构不变彼此功能实现可以随意变化而不互相影响,这对网站扩展新功能非常便利,除此之外,使用异步消息队列还有如下特性。 提高系统可用性,消费者服务器发生故障,数据会在消息队列服务器中存储堆积,生产者服务器可以继续处理业务请求,系统整体表现无故障,消费者服务器恢复正常后,继续处理消息队列中的数据。

加快网站响应速度,处理业务处理前端的生产者服务器在处理完业务请求后,将数据写诶消息队列,不需要等待消费者服务器处理就可以返回,响应延迟少。

消除并发访问高峰,用户访问网站是随机的,存在访问高峰的低谷,即使网站按照一般访问高峰进行规划和部署,也依然会出现突发事件,比如购物网站的促销活动,微博的热点事件,都会造成网站并发访问突然增大,这可能会造成整个网站负载过重, 响应延迟,严重时甚至会出现服务器依次处理,就不会对整个网站负载造成太大压力。 但需要注意的是,使用异步方式处理业务可能会对用户体验,业务流程造成影响,需要网站产品设计方面的支持。

一起设计吧
BACK