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

扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。
伸缩性:指系统能够通过增加(减少)自身资源规模的方式增强(减少)自己计算处理事务的能力


1,构建可扩展的网站架构
设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提高模块的复用性。
模块分布式部署以后具体聚合方式主要由分布式消息队列和分布式服务。


2,利用分布式消息队列降低系统耦合性
1)事件驱动架构
通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助时间消息的通信完成模块间合作,典型的EDA架构就是操作系统中常见的生产者消费者模式。最常用的是分布式消息队列。
2)分布式消息队列
如erlang开发的rabbitmq和java开发的activemq


3,利用分布式服务打造可复用的业务平台
如果说分布式消息队列通过消息对象分解系统耦合性,不同子系统处理同一个消息;那么分布式服务则通过接口分解系统耦合性,不同子系统通过相同接口描述进行服务调用。
巨无霸应用系统问题;
编译部署困难
代码分支管理困难
数据库连接耗尽
新增业务困难
解决方案就是拆分,将模块独立部署,降低系统耦合性。拆分开分为:横向拆分和纵向拆分两种。
1)Web Service与企业级分布式服务
缺点:
臃肿的注册与发现机制
低效的XML序列化手段
开销相对较高的HTTP远程通信
复杂的部署与维护手段
2)大型网站分布式服务的需求与特点
负载均衡
失效转移
高效的远程通信
整合异构系统
对应用最少侵入
版本管理
实时监控
3)分布式服务框架设计
大型网站需要更简单更高效的分布式服务框架构建其SOA(Service Oriented Architecture面向服务的体系架构)
据说facebook是使用Thrift(一个开源远程服务调用框架)管理其分布式服务,服务的注册、发现及调用都通过Thrift完成


4,可扩展的数据结构
例如:NoSQL中的列族


5,利用开放平台建设网站生态圈
利用自身庞大的用户群吸引第三方开发者。
API接口:RESTful、WebService、RPC等各种形式
协议转换:将各种API输入转换成内部服务可以识别的形式,并将内部服务的返回封装成API的格式
安全
审计
路由:映射,将开放平台的各种访问路由映射到具体的内部服务。
流程:将一组离散的服务组织成一个上下文相关的新服务,隐藏服务细节,提供统一接口供开发者调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值