大型站点技术架构(七)--站点的可扩展性架构

大型站点技术架构(一)--大型站点架构演化

大型站点技术架构(二)--架构模式

大型站点技术架构(三)--架构核心要素

大型站点技术架构(四)--站点的高性能架构

大型站点技术架构(五)--站点高可用架构

大型站点技术架构(六)--站点的伸缩性架构

扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。

设计站点可扩展架构的核心思想是模块化,并在此基础上,减少模块间的耦合性,提供模块的复用性。模块通过分布式部署,独立的模块部署在独立的server上(集群)从物理上分离模块之间的耦合关系。

模块分布式部署以后详细聚合方式主要有分布式消息队列和分布式服务

1、利用分布式消息队列减少系统耦合性

假设模块之间不存在直接调用,那么新增模块或者改动模块对其它模块影响最小,这样系统的可扩展性无疑更好一些。

        事件驱动框架:通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完毕模块间合作,典型的架构就是生产者消费者模式。在大型站点架构中,详细实现手段非常多,最经常使用的就是分布式消息队列,例如以下图所看到的:

消息队列利用公布-订阅模式工作,消息发送者公布消息,一个或者多个消息接收者订阅消息。

因为消息发送者不须要等待消息接受者处理数据就能够返回,系统具有更好的响应延迟;同一时候,在站点訪问高峰,消息能够临时存储在消息队列中等待处理,减轻数据库等后端存储的负载压力。

眼下开源的和商业的分布式消息队列产品有非常多,比較著名的有Apache ActiveMQ等,例如以下是分布式消息队列的架构原理:

2、利用分布式服务打造可复用的业务平台

使用分布式服务是减少系统耦合性的还有一个重要手段。假设说分布式消息队列通过消息对象分解系统耦合性,不同子系统处理同一个消息;那么分布式服务则通过接口分解系统耦合性,不同子系统通过同样的接口描写叙述进行服务调用。

大型站点分布式服务的需求与特点:

  1. 负载均衡
  2. 失效转移
  3. 高效的远程通信
  4. 整合异构系统
  5. 相应用最小入侵
  6. 版本号管理
  7. 实时监控

眼下国内有较多成功实施案例的开源分布式服务框架是阿里巴巴的Dubbo,下图是Dubbo的架构原理:

服务消费程序通过服务接口使用服务,而服务接口通过代理载入详细服务,详细服务能够是本地的代码模块,也能够是远程的服务,因此相应用较小入侵;应用程序须要调用服务接口,服务框架依据配置自己主动调用本地或远程实现。

服务框架client模块通过服务注冊中心载入服务提供者列表(服务提供者启动后主动向服务注冊中心注冊自己可提供的服务接口列表),查找须要的服务接口,并依据配置的负载均衡策略将服务调用请求发送到某台服务提供者server。假设服务调用失败,client模块会自己主动从服务提供者列表选择一个可提供相同服务的还有一台server又一次请求服务,实现服务的自己主动失效转移,保证高可用服务。

3、利用开放平台建设站点生态圈

大型站点为了更好的服务自己的用户,开放很多其它的增值服务,会把站点内部的服务封装成一些调用接口开放出去,共外部的第三方开发人员使用,这个提供开放接口的平台被称作开放平台。

开放平台是站点内部和外部交互的接口,外部须要面对众多的第三方开发人员,内部须要面对站点内诸多的业务服务。尽管每一个站点的业务场景和需求都不同样,但开发平台的架构设计却大同小异,例如以下图所看到的:

API接口:是开发平台暴露给开发人员使用的一组API,其形式能够是RESTfull,WebService,RPC等各种形式。

协议转换:将各种API输入转换成内部服务能够识别的形式,并将内部服务的返回封装成API格式。

安全:除了一般应用须要的身份识别、权限控制等安全手段,开放平台还须要分级的訪问带宽限制,以保证资源被公平合理的使用。

审计:记录第三方应用的訪问情况并进行监控、计费等。

路由:将开放平台的各种訪问路由映射到详细的内部的服务。

流程:将一组离散的服务组织成一个上下文相关的新服务,隐藏服务细节,提供统一接口供开发人员调用。

大型站点技术架构(七)--站点的可扩展性架构,布布扣,bubuko.com

时间: 2024-12-18 21:59:31

大型站点技术架构(七)--站点的可扩展性架构的相关文章

大型站点技术架构(八)--站点的安全架构

大型站点技术架构(一)--大型站点架构演化 大型站点技术架构(二)--架构模式 大型站点技术架构(三)--架构核心要素 大型站点技术架构(四)--站点的高性能架构 大型站点技术架构(五)--站点高可用架构 大型站点技术架构(六)--站点的伸缩性架构 大型站点技术架构(七)--站点的可扩展性架构 从互联网诞生起,安全威胁就一直伴随着站点的发展,各种Web攻击和信息泄露也从未停止.常见的攻击手段有XSS攻击.SQL注入.CSRF.Session劫持等. 1.XSS攻击 XSS攻击即跨网站脚本攻击(C

大型网站技术架构(七)--网站的可扩展性架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 大型网站技术架构(五)--网站高可用架构 大型网站技术架构(六)--网站的伸缩性架构 扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力. 设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性.模块通过分布式部署,独立的模块部署在独立的服务器上(集群)从物理上分离模块之间的耦合关系

大型站点技术架构(六)--站点的伸缩性架构

大型站点技术架构(一)--大型站点架构演化 大型站点技术架构(二)--架构模式 大型站点技术架构(三)--架构核心要素 大型站点技术架构(四)--站点的高性能架构 大型站点技术架构(五)--站点高可用架构 站点系统的伸缩性架构最重要的技术手段就是使用server集群功能.通过不断地向集群中加入server来增强整个集群的处理能力. "伸"即站点的规模和server的规模总是在不断扩大. 1.站点架构的伸缩性设计 站点的伸缩性设计能够分成两类,一类是依据功能进行物理分离实现伸缩.一类是单

大型站点技术架构(二)--架构模式

大型站点技术架构(一)--大型站点架构演化 每个模式描写叙述了一个在我们周围不断反复发生的问题及该问题解决方式的核心. 这样,你就能一次重新地使用该方案而不必做反复工作. 所谓站点架构模式即为了解决大型站点面临的高并发訪问.海量数据.高可靠执行灯一系列问题与挑战.为此.在实践中提出了很多解决方式,以实现站点高性能.高可靠性.易伸缩.可扩展.安全等各种技术架构目标. 1.分层 分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每一个部分负责一部分相对简单并比較单一的职责,

《大型站点技术架构》1:概述

參考自<大型站点技术架构>第1~3章 1.大型站点架构演化发展历程 (1)初始阶段的站点架构:一台server分别作为应用.数据.文件server (2)应用服务和数据服务分离:三台server分别承担上述三项工作,当中应用server要求CPU强大.数据库server需求更快的硬盘和内存,文件server须要较大的硬盘. (3)使用缓存改善站点性能:分为本地缓存以及缓存在专门的分布式server上的远程缓存. (4)使用应用server集群改善站点的并发处理能力. (5)数据库读写分离. (

阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章

题目:阅读<大型网站技术架构:核心原理与案例分析>第五.六.七章,结合<XXX需求征集系统>,分析如何增加相应的功能,提高系统的可用性和易用性,撰写一篇1500字左右的博客阐述你的观点 在这一节课上,我们学习了系统质量属性其中的可用性和易用性.那么质量属性是什么呢,质量属性是高于对系统功能(即对系统能力.服务和行为)的基本的要求的.系统质量属性讲重点放在了可用性.可修改性.性能.安全性.可测试性和易用性.从设计师方面,系统质量属性一般存在三个问题:(1)为属性提供的定义并不是可操作

大型网站技术架构(八)--网站的安全架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 大型网站技术架构(五)--网站高可用架构 大型网站技术架构(六)--网站的伸缩性架构 大型网站技术架构(七)--网站的可扩展性架构 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止.常见的攻击手段有XSS攻击.SQL注入.CSRF.Session劫持等. 1.XSS攻击 XSS攻击即跨站点脚本攻击(C

(转)各种大型网站技术架构

引言近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图.除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服.个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,MySpace,Twitter,国内如优酷网等大型网站的技术架构(本文重点分析优酷网的技术架

《大型网站技术架构》读书笔记

大型网站架构演化 大型网站的关注指标 高可用 高性能 易扩展 可伸缩 安全 大型网站的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 大型网站架构演化发展过程 初始阶段,一般使用LAMP来搭建,所有资源存放在一台服务器上 应用服务和数据服务分离,有独立的数据库服务器 使用缓存改善网站性能,依据是二八定律:80%的业务访问集中在20%的数据上 这里需要考虑哪些数据适合缓存 缓存可以是本地缓存,也可以是远程分布式缓存 使用应用服务