分布式架构-设计模式

本文是 《大型网站技术架构:核心原理与案例分析》的学习和记录

// 前言

如果是看过概述了,那么主要需要看异步、安全和自动化部分

模式是可复用的解决方案

分布式架构总共用到 分层、分割、分布式、集群、缓存、异步、备份、自动化和安全几种模式

1、分层

分层是将服务器的处理逻辑分成多层,如大家熟知的将服务器分成控制器,服务层和dao数据层

2、分割

分割是将可以互相解耦的业务分成不同的子系统去操作,比如将购物,付款,订单,推广,客服等分成不同的子系统去由不同的团队维护。

3、分布式

分布式的解释概述里讲过,分布式采用增加服务器,分解业务过程的方法去提高性能,但是有一个缺点就是业务之间交互都需要以网络的形式,多服务器网络交互肯定是比单服务器内存交互要慢的多的,另外由于分布式部署虽然互相业务依赖性不强但是某台服务器宕机也可能会导致其他服务器不可用。

分布式主要有分布式应用和服务,分布式静态资源(将图片js,css,logo等部署独立服务器,采用独立域名,减轻应用服务器压力),分布式数据和存储(将数据分布式存放),分布式计算(如搜索引擎,大量数据的分析统计,这些计算规模大,通常使用hadoop或者mapReduce分布式计算框架进行处理和计算),配置实时更新的分布式配置,实现并发和协同的分布式锁和云存储的分布式文件等。

4、集群

分布式是将一个处理逻辑分成多个部分,而集群是将访问比较集中的模块(如首页淘宝首页)集群化,即多个服务器部署相同应用,通过负载均衡去访问。在小的应用中可以部署两台服务器作为集群,这是为了防止一台服务器不可用的情况下系统可以正常运行,提高系统的可用性。

5、缓存

缓存是将常用的数据放在获取速度更快的地方,一方面可以提高数据访问速度,另一方面可以减轻数据访问压力和应用处理压力,常见的有cdn,反向代理,本地缓存,分布式缓存。

6、异步

异步的操作是指在将业务分成多层的过程中,之间信息交互并不直接交互,而是通过使用生产者-消费者模式去交互,生产者将数据产生好后放置在分部署消息队列中吗,由消费者去取然后执行,二者不直接做信息交互。在多线程开发中,生产者也是在生产数据后将数据存放在共享内存中,由消费者去取。

异步模式有如下好处:

提高可用性:如果消费者宕机了,数据只会堆积在消息队列,生产者可以继续正常运行。

加快响应速度:生产者将数据交给消息队列后不需要等消费者处理完成 就可以将结果返回给用户,用户不需要等待消费者的处理过程所花费的时间。

消除并发高峰:如双十一,准点抢等活动会在某个时间节点访问量突然增多,如果都交付给服务器处理可能会导致宕机,如果这里将消息存储在消息队列则可以避免宕机。

异步处理需要业务流程的支持,即消费者的处理能保证是对生产者对用户的响应没有影响。

7、备份

主要是数据备份和服务器集群备份,包括数据定期备份,存档保存等冷备份和主从分离的热备份发。

8、自动化

包括

发布自动化:减少人为干预,减少发布过程中人为故障。

代码管理自动化:使用版本控制工具。

自动化测试:代码提交后自动部署到测试环境,自动化测试根据测试用例对上线的功能进行测试。

自动化安全测试:自动模拟攻击

自动化部署:部署上线

自动化监控:监控线上生产环境

9、安全

主要是隐私信息加密,防止sql注入和xss攻击

猜你喜欢

转载自blog.csdn.net/a397525088/article/details/81183277