栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

SAAS系统架构之多租户设计的高性能

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SAAS系统架构之多租户设计的高性能

1.数据库层性能优化

(1)建立合适的索引

  • 在原有的索引上,都增加一个tenant_id字段。由于tenant_id的选择性较强,一般tenant_id字段需要作为联合索引的第一个字段
  • 所有的业务查询操作,都增加tenant_id字段进行过滤
  • 索引应创建在条件(where)、排序(order by)、分组(group by)等操作所涉及的列上。
  • 索引应该有较强的选择性,即应尽可能建立在重复数据少的的数据列中。
  • 如果多个条件经常需要组合起来查询,应合理使用联合索引
  • 一次查询中只能使用一个索引,可使用相应的分析工具分析索引效果
  • 索引不是越多越好,过多的索引可能导致CUD(新增、修改、删除)的性能降低,并且占用更多的空间

(2)消除大数据表连接

并不是所有的耗时长的SQL问题都是由索引引起的。索引优化完成之后,就会发现太多的大数据量表连接操作占用了耗时SQL统计中的大部分。

(3)避免复杂SQL

一般需要考虑将复杂的SQL分解成多个简单的SQL执行,将复杂的运算尽量留在应用服务器层

。因为一般情况下,应用服务器层的水平扩展更容易实现,而数据库层的扩展则是比较困难的。

2.应用层性能优化

(1)Cache

采用cache其实也是对数据库的一种优化,因为避免了对数据库的频繁访问。主要针对那些变化相对较少的业务数据。比如用户数据、权限角色数据、国家省市地区数据等做缓存

(2)统计和报表计算

        在多租户架构下,由于并发量和数据量的增大,实时计算的统计和报表也将是造成数据库压力过大的一个主要因素。

(3)搜索引擎

(4)异步操作

         异步操作使得用户的操作体验得到了极大地提升,同时也能降低系统的并发负载,因此,将同步操作变成异步操作,也是提升性能的一种重要手段。

3.Web层性能优化

(1)web开发的性能优化策略

可参考https://developer.yahoo.com/performance/rules.html

内容类:

  • 减少http请求
  • 减少DNS查找
  • 避免跳转
  • 缓存ajax
  • 延迟加载
  • 提前加载
  • 减少DOM元素数量
  • 用域名划分页面内容
  • 减少frame
  • 避免404错误

服务器类与cookie类

  • 使用CDN
  • 为文件头制定Expire或Cache-Control
  • GZIP压缩网页
  • 配置实体标签
  • 尽早刷新输出缓冲
  • 使用Get完成AJAX请求
  • 减少cookie体积
  • 对月页面内容使用无cookie域名

JS、CS、图片类

  • 把脚本置于页面底部
  • 使用外部JS和CSS
  • 削减JS和CSS
  • 剔除重复脚本
  • 减少DOM访问
  • 开发智能事件处理程序
  • 把样式表置于顶部
  • 避免使用CSS表达式
  • 用link代替@import
  • 避免使用滤镜
  • 优化图像
  • 优化CSS Sprites
  • 不要在HTML中缩放图像
  • favicon.ico要小而且可缓存

移动应用类

  • 保持单个内容小于25KB
  • 打包组件成复合文本

虽然这些法则更多的侧重于互联网网站的优化,不过很多内容对于基于web的saas应用同样具有参考价值。

(2)http服务器的性能优化策略

apache、nginx服务器的优化

4.性能监控

通过工具能够实时地统计出应用在各种场景下(不同地区、不同客户、不同页面)的性能数据并及时预警

上图是阿里软件性能中心的截图,该性能中心可以统计出每个请求的服务端响应时间、网络时间和客户端加载时间,并且可以按照页面、用户所在地区、时间等多维度进行统计分析,从而帮助监控应用性能。

参考书籍《互联网时代的革命-SAAS应用架构》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/912291.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号