《软件测试52讲》
1、测试基础知识篇——(0~11讲)
2、GUI自动化测试篇——(12~21讲)
3、API自动化测试篇——(22~24讲)
4、代码测试篇——(25~27讲)
5、性能测试篇——(28~34讲)
6、测试数据准备篇——(35~38讲)
7、测试基础架构篇——(39~42讲)
8、测试新技术篇——(43~47讲)
9、测试人员的互联网架构核心知识篇——(48~52讲)
测试人员的互联网架构核心知识篇
48——大型网站架构设计
网站使用的缓存的方式一般分为两种:
一种是,在应用服务器本地的缓存。其优点是访问速度非常快,但是由于要和应用服务器共享内存资源,所以能够提供的缓存空间非常有限。
另一种是,将缓存放在远程专用的分布式缓存服务器集群上。其优点是,缓存容量不受限制,当需要更多缓存空间的时候,就可以在分布式缓存服务器集群加入更多的节点;其缺点是,由于要通过网络调用来获取缓存数据,所以访问速度会比较慢。
负载均衡服务器(LoadBalancer)
从各个国家和地区网络差异这个点来考虑的话,我们可以引入内容分发网络CDN(CDNServers)和反向代理服务器(ReverseProxyServers)。
引入内容分发网络CDN和反向代理服务器的网站结构
引入分布式文件系统和分布式数据库系统的网站结构
基于分布式服务的网站结构
目前出现了更新的架构:服务网格
49——网站高性能架构设计
缓存主要用来存储那些相对变化较少,并且遵从“二八原则”的数据。这里的“二八原则”指的是80%的数据访问会集中在20%的数据上。
缓存技术并不适用于那些需要频繁修改的数据。
分布式缓存架构的主流技术方案有两种:
1、一种是,在企业级应用中广泛采用的JBossCache
2、另一种是,在互联网应用的主流Memcached。
50——网站高可用架构设计
造成网站不可用的主要原因有以下三大类:
1.服务器硬件故障;
2.发布新应用的过程;
3.应用程序本身的问题。
影响网站高可用的因素归为了三类,并相应地给出了解决这三类问题的方案:
1.由服务器硬件故障引起的网站不可用,对应的解决方案是从硬件层面加入必要的冗余;
2.由发布新应用的过程引入的网站不可用,对应的解决方案是采用灰度发布的技术手段;
3.由应用本身质量引入的网站不可用,对应的解决方案是,一方面加强测试提高应用本身的质量,另一方面是引入预发布服务器消除测试环境和生产环境的差异。
51——网站可伸缩性架构设计
从整体架构的角度来看,应用服务器、缓存集群和数据库服务器各自都有适合自己的可伸缩性设计策略:应用服务器主要通过集群来实现可伸缩性,缓存集群主要通过Hash一致性算法来实现,
数据库可以通过业务分库、读写分离、分布式数据库以及NoSQL来实现可伸缩性。
52——网站可扩展性构设计
事件驱动架构与消息队列
事件驱动架构最典型的一个应用就是操作系统中常见的生产者和消费者模式,将其应用到网站设计中就是分布式消息队列。
分布式消息队列同样采用了生产者和消费者模式:
消息的发送者负责将消息发布到消息队列中,也就是“生产者”;
另外,系统中会有一个或者多个消息接收者订阅消息,订阅目的是为了获取消息并进行处理,这里的消息订阅者其实就是“消费者”。消息接收者发现消息队列中有新的消息后,就会立马对其进行处理。