软件测试职业探索测试相关颠覆你的Python实践

jmeter 系统架构优化

2018-02-24  本文已影响41人  权艳霞

一、单机结构:Web服务和App服务在一台机器或者分开两台机器上
二、集群结构:Web&App服务用多台机器负载分担,DB的瓶颈也可以采用分区、分库、分表的方式来缓解。
负载均衡,目前主要是对TCP\IP协议的四层与七层进行负载分发,四层的有LVS、F5,七层Tengine、Nginx、Haproxy、Vanish、ATS、Squid等。目前多企业采用LVS+Tengine/Nginx。
三、分布式结构:系统分层、系统服务化(SOA架构、微服务化等)、服务分布式、DB分布式、缓存分布式及良好的水平扩展能力。
1、服务化:业务隔离,把系统中若干主要功能拆分成多个子项目,降低开发难度,更方便维护。使用不同的War包不同的服务器进行发布,每个服务器完成特定的业务功能,这就是服务化。
2、DB分布式:Mariadb,Hash算法。
3、缓存:磁盘读取数据慢,需要缓存。缓存的数据以读为主。
4、良好的扩展性:Dubbo高效分布式服务框架,使用dubbo框架开发的应用可以通过注册中心(zookeeper)注册服务,用户请求通过注册中心查找到服务,然后发送请求到目的服务器,用户不用关心是那台服务器在处理。

图片.png
1,DNS&CDN静态加速
DNS:智能DNS,用户请求进入后,域名解析服务器智能判断用户请求的线路,如果是电信用户就解析到电信IP,联通用户就解析到联通IP。
CDN:多台静态资源服务器加智能DNS的结合体,CDN服务其实就是把静态页面缓存到不同地区很多台专门的缓存服务器上,然后根据用户线路所在的地区通过CDN服务商的智能DNS自动选择一个最近的缓存服务器让用户访问,以此提高速度。
2,负载均衡器
负载均衡器的作用是把用户请求按一定规则分发到不同的服务器进行处理,在使用负载均衡集群时,负载均衡是一件性能要求极高的事情,流行的产品有LVS、nginx、apache、F5等。
LVS:LVS集群采用IP负载均衡技术和基于内容请求分发技术,也就是能够在TCP/IP的第四层请求分发。
Tengine:强大的高性能反向代理服务器,Tengine是由淘宝网发起的Web服务器项目,他在Nginx的基础上针对大访问量网站的需求,添加了很多高级功能和特性。
3,Web服务分布式集群
Web:Web服务层,按照MVC的设计理念Web服务层主要是进行页面渲染,Session保持等工作。这些应用部署在Tomcat、Jetty、Jboss这些容器上。图10-13所示为一个典型的Web结构,Client请求通过前端负载均衡器(比如LVS+Tengine)分发到Web层,Web层通过ZK(Zookeeper)注册中心找到提供业务处理(App层中的某一个节点)的节点。Web层请求传送到App层的路由负载算法来实现,通常叫软路由,他能够把请求按照一定规则分发到App层的各节点上,Dubbo框架中就内置了这样的软路由。
Web层中的session信息由redis分布式集群实现。
Zookeeper:开放源码的分布式应用程序协调服务,是hadoop和Hbase的重要组件,为分布式引用提供一致性服务,比如配置维护、域名服务、分布式同步、组服务等。
4,App服务分布式集群
App:应用服务层,实现主要的业务逻辑。Dubbo、Docker。
5,分布式缓存
Cache:缓存数据到内存,解决热点数据问题。比如redis,memcache等。
内存中存储数据问题包括数据的安全性和存储量。解决安全性主要是数据持久化与数据冗余;解决存储量主要是分而治之,分布式存储,每一个存储节点我们叫做分片。
Hash算法,redis,zookeeper。
6,分布式数据库
目前广泛使用的持久化工具有HDFS、HBase、Mariadb等。HDFS取自Hadoop中的分布式文件存储;HBase也是Hadoop下的一个子项目,是一个适合于非结构化数据存储的数据库;Mariadb是Mysql的开源版本。
Dubbo:阿里出品的分布式服务框架,众多互联网公司在使用。另外一个叫HFS。
Memcache:支持分布式的缓存产品,实际可以当数据库用。
Redis:支持分布式的缓存产品,实际可以当数据库用,众多秒杀系统中经常用到。
Mariadb:开源的分布式数据库产品。
上一篇下一篇

猜你喜欢

热点阅读