《大型网站技术架构:核心原理与案例分析》拜读总结,第七章——随需应变:网站的可扩展架构

来源:互联网 发布:sql删除重复保留唯一 编辑:程序博客网 时间:2024/05/16 12:25

网站的扩展性架构:对现有系统影响最小的情况下,系统功能可持续扩展和提升的能力。

扩展性:对现有系统影响最小的情况下,系统功能可持续扩展和提升的能力。表下周乃系统基础设施稳定不需要经常改变,应用之间较少依赖,耦合。对需求变更可以敏捷响应,增加新功能时,不需要对现有系统结构进行修改。

伸缩性:系统通过增加,减少服务器,提高,降低系统整体事物吞吐能力。

一:构建可扩展的网站架构:核心思想是模块化、降低模块间的耦合。

低耦合的系统更挺容易扩展,低耦合的模块更容易复用。低耦合的独立组件模块以消息传递及依赖调用的方式聚合成一个完整的系统。

独立模块部署在独立的服务器集群上,进一步降低耦合性,提高复用性。

模块化部署后的聚合方式主要有分布式消息队列和分布式服务。

二:利用分布式消息队列降低系统耦合性:

1.事件驱动架构:典型的有生产者消费者模式。

2.分布式消息队列:

消息生产者应用程序通过远程访问接口将消息推送至消息队列服务器,消息队列服务器根据消息订阅列表查找消费者应用程序,按先进先出的原则将消息通过远程通信接口发送给消息消费者。

为避免消息队列服务器宕机造成消息丢失,会将发送到消息队列的消息存储在消息生产者服务器,等消息真正被消息消费者处理后再删除。在消息队列服务器宕机后,生产者服务器会选择分布式消息队列集群中的其他机器发布消息。


三:利用分布式服务打造可复用业务平台

解决方案就是拆分,将模块独立部署(纵向,横向)

分布式服务的需求和特点:负载均衡,失效转移,高效的远程通信,整合异构系统,对应用最少侵入,

分布式服务框架:以阿里巴巴分布式开源框架:Dubbo为例


四:可扩展的数据结构:

无需修改表结构就新增字段;许多NoSQL产品的ColumnFamily设计就是个解决方案。

创建表的时候,只需指定ColumnFamily的名字,无需指定字段,可在数据写入时再指定,通过这种方式,数据表可包含数百万字段,是应用程序数据结构随意扩展。

阅读全文
0 0