大数据场景下常见解决方案

封面图 大数据场景下常见解决方案
文章图片

嗨!大家好啊,我是阿壮,一个充满正能量的程序员。今天和大家聊一聊大数据
什么是大数据 大数据顾名思义,就是庞大的数据,这里的庞大是指数据量至少是千万级别。在这种场景下,每一行代码都有它的作用,比如我们平时的 CRUD 在大数据场景下一不留神就会导致接口响应超时。
阿壮在工作中也会接触大数据的场景,有一次看了一下所在公司的数据量,Elasticsearch 中的数据大概有几十亿,数据库中的数据最多的一张表有七千万条。系统的并发并不大,但是数据量比较大。经常应为某块代码效率太低,导致接口请求超时,普通的一次查询都要使用线程池,普通优化也是杯水车薪。
常见的解决方案

  1. 数据库分库分表
  2. 使用消息队列,例如 Kafka,削峰
  3. 使用搜索引擎,例如 Elasticsearch
  4. 减少 IO 操作,能一次查完在在内存中处理数据结构的就不要多次到数据库查
  5. SQL 优化,例如减少子查询
  6. 使用缓存,例如 Redis
  7. 分布式微服务,例如 Spring Cloud Alibaba
  8. 使用高效的算法
  9. 善于使用线程池,例如 JUC
  10. 在适合的场景下使用懒加载
  11. 控制接口数量,没必要的情况下就不要接口
  12. 特别注意有循环的代码,及时排坑,避免请求超时
  13. 使用云托管,减少服务器压力,例如阿里 OSS
  14. 大数据框架,例如 Hadoop
总结 一个系统是从简单到复杂的过程,数据量必定会在软件的发展过程中越来越大,不可避免的会接触到大数据的场景。学习好大数据是很有必要的,不仅可以提升我们的技术能力,也可以在工作面试中贴金。
【大数据场景下常见解决方案】我是阿壮,微信搜一搜: 科技猫,关注这个充满正能量的程序员,我们下期间

    推荐阅读