封面图
嗨!大家好啊,我是阿壮,一个充斥正能量的程序员。明天和大家聊一聊大数据
什么是大数据
大数据顾名思义,就是宏大的数据,这里的宏大是指数据量至多是千万级别。在这种场景下,每一行代码都有它的作用,比方咱们平时的 CRUD 在大数据场景下一不留神就会导致接口响应超时。
阿壮在工作中也会接触大数据的场景,有一次看了一下所在公司的数据量,Elasticsearch 中的数据大略有几十亿,数据库中的数据最多的一张表有七千万条。零碎的并发并不大,然而数据量比拟大。常常应为某块代码效率太低,导致接口申请超时,一般的一次查问都要应用线程池,一般优化也是无济于事。
常见的解决方案
- 数据库分库分表
- 应用音讯队列,例如 Kafka,削峰
- 应用搜索引擎,例如 Elasticsearch
- 缩小 IO 操作,能一次查完在在内存中解决数据结构的就不要屡次到数据库查
- SQL 优化,例如缩小子查问
- 应用缓存,例如 Redis
- 散布式微服务,例如 Spring Cloud Alibaba
- 应用高效的算法
- 长于应用线程池,例如 JUC
- 在适宜的场景下应用懒加载
- 管制接口数量,没必要的状况下就不要接口
- 特地留神有循环的代码,及时排坑,防止申请超时
- 应用云托管,缩小服务器压力,例如阿里 OSS
- 大数据框架,例如 Hadoop
总结
一个零碎是从简略到简单的过程,数据量必定会在软件的倒退过程中越来越大,不可避免的会接触到大数据的场景。学习好大数据是很有必要的,不仅能够晋升咱们的技术能力,也能够在工作面试中贴金。
我是阿壮,微信搜一搜: 科技猫,关注这个充斥正能量的程序员,咱们下期间