大型网站技术架构(一):架构演变过程和架构体系
来源:互联网 发布:matlab退火算法 编辑:程序博客网 时间:2024/05/29 10:48
一、大型网站架构演化
大型网站架构主要解决因庞大的用户、高并发的访问和海量的数据而引发的网站系统问题。
演化历程如下:
二、网站架构模式
为解决大型网站面临的高并发访问、海量数据处理等问题,逐渐会出现很多解决方案,而当这些解决方案被更多网站重复使用时,就逐渐形成了架构模式。以下是常见的架构模式:
三、核心架构要素
(一)高性能
性能测试指标
性能测试方法:性能测试、负载测试、压力测试、稳定性测试
优化策略:Web前端性能优化、应用服务器性能优化、存储服务器性能优化
1、Web前端性能优化
2、应用服务器性能优化
3、存储服务器性能优化
使用固态硬盘代替机械硬盘
使用LSM树(NoSQL中的数据结构)代替B+树(关系型数据库的数据结构)
使用HDFS(Hadoop分布式系统)代替RAID技术
(二)高可用
自上而下,网站架构基本分层为:应用层、服务层、数据层
1、在应用层,可通过以下方式,提供可用性。
通过负载均衡进行无状态服务的失效转移
应用服务器集群的Session管理
2、在服务层,有以下高可用的服务策略。
分级管理
低优先级的服务通过启动不同的线程或部署在不同的虚拟机上进行隔离,而高优先级的服务则需要部署在不同的物理机上,核心服务和数据甚至需要部署在不同地域的数据中心。
超时设置
在应用程序中设置服务调用的超时时间,一旦超时,通信框架就抛出异常,应用程序根据服务调度策略,可选择继续重试或将请求转移到提供相同服务的其他服务器上。
异步调用
应用对服务的调用通过消息队列等异步方式完成,避免一个服务失败导致整个应用请求失败的情况。
服务降级
降级有两种手段:拒绝服务及关闭服务
拒绝服务:拒绝低优先级应用的调用,减少服务调用并发数
关闭功能:关闭部分不重要的服务
幂等性设计
3、数据层
CAP原理:一个提供数据服务的存储系统无法同时满足数据一致性(Consistency)、数据可用性(Availibility)、分区耐受性(Patition Tolerance)
数据备份使用Master-Slaver同步机制。
(三)伸缩性
1、网站架构的伸缩性设计
根据功能进行物理分离实现伸缩
单一功能通过集群实现伸缩
2、应用服务器集群的伸缩性设计
HTTP重定向负载均衡
DNS域名解析负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
3、分布式缓存集群的伸缩性设计
以Memcached为代表分布式缓存集群,使用分布式缓存的一致性Hash算法,代替路由算法。
4、数据存储服务器集群的伸缩性设计
采用数据库主从读写分离、数据分库。
对于关系型数据库,采用Cobar做集群的伸缩;
对于非关系的、分布式的数据库,也就是NoSQL数据库,可以使用Apache HBase,进行数据操作和集群伸缩。
(四)可扩展
利用分布式消息队列,如Apache ActiveMQ,降低系统耦合性。
(五)安全
了解以下web攻击:
- XSS攻击:跨站点脚本攻击(Cross Site Script)
- 注入攻击
- CSRF攻击:跨站点请求伪造(Cross Site Request Forgency)
信息加密技术:
- 单向散列加密
- 对称加密
- 非对称加密
- 大型网站技术架构(一):架构演变过程和架构体系
- 大型网站架构的演变过程和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- 大型网站架构演变和知识体系
- js弹出子窗口的浏览器兼容性问题
- CAS实现记住密码免登陆
- Java数组-数组的应用-应用查表法将十进制整数转化为16进制-2
- 游戏服务器架构文档
- 在VS2013上搭建wxWidgets开发环境
- 大型网站技术架构(一):架构演变过程和架构体系
- 41.内核链表状态机多线程编译器
- android 截图scrollview
- i2c写操作收到nack后重发------24C02B/24C16N i2c写实例
- win10下apache服务的下载安装与配置
- 配置 mybatis的 log4j.properties
- 非select模式下的时间三级联动,
- Lucene使用单字分词及短语查询实现类似全模糊查询效果
- naoj 37 回文字符串