网站架构学习(二)之网站架构模式

来源:互联网 发布:手机淘宝店店招 编辑:程序博客网 时间:2024/06/05 00:41

前言

什么是模式?每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,就能一次又一次地使用该方案而不必做重复的工作。

网站架构模式

以网站高性能,高可用,易伸缩,可扩展,安全等各种技术架构目标。

分层

应用层:负责具体业务和视图展示,如网站首页及搜索输入。
服务层:为应用层提供服务,如用户管理服务,购物车服务等。
数据层:提供数据存储访问服务,如数据库,缓存,文件,搜索引擎等。

分割

将不同的业务分割开,例如购物,论坛,搜索等等。

集群

多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务。提供了系统的可用性。

缓存

缓存是将数据存放在距离计算最近的位置以加快处理的速度。缓存事改善软件性能的第一手段。
CDN:内容分发网络。视频网站和门户网站会将用户访问量大的热点内容缓存在CDN。

反向代理:反向代理是针对服务器的,客户端访问过来,它并不是道真正为它提供服务的是哪台机器。请求最先到达反向代理服务器,这里缓存网站的静态资源。

本地缓存:在应用服务器本地缓存着热点数据,无需访问数据库,直接访问本机内存。

分布式缓存:将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问缓存数据。

必要保证!!
1.数据的频繁访问可以当做缓存
2.缓存的数据要保证其正确(很可能缓存数据失效,造成脏读)

异步

业务之间的消息如果是同步的话,那么速度是非常慢的(方法A调用方法B,等待方法B处理完后才能继续接下来的处理)

单一服务器内部可以通过多线程共享内存队列的方式实现异步(项目中也用到了,Netty书上说这算伪异步);在分布式系统中,多个服务器集群通过分布式消息队列实现异步,分布式消息队列可看做内存队列的分布式部署(-这里并不是很懂,,)。

可以消除并发访问高峰。例如购物网站的促销活动,微博上的热点事件等等,造成网站并发访问的突然增大,使用消息队列,可以保证不会对网站负载造成太大压力。但会影响用户体验。

冗余

为了防止服务器宕机,使网站能够正常服务,不丢失数据,需要一定程度的服务器冗余运行,数据冗余备份,这样当某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器。

数据库除了实现冷备份(定期备份,存档保存),为了保证业务高可用,还需要对数据库进行主从分离,实时同步实现热备份。

安全

XSS攻击:
1.存储型
2.反射型

SQL注入,敏感词过滤等都要考虑到。

阅读全文
0 0