高并发需要学这些技术,你都掌握了吗

前言

首先,得有全局观,得知道“高并发”要解决的是系统中哪些部位的瓶颈(CPU不足,还是内存不够?web服务器扛不住,还是数据库并发量太小……)。因此,需要学习“架构设计”(至少要了解一下)。福利获取

  1. 并发的基础是多线程,所以“多线程”少不了。
  2. 多线程可以用基础的方式手写,也可以使用高级一点的多线程库:JUC(至少)。
  3. 很多新版的jdk,提供了并发编程的工具类,因此需要学习(或者查阅一下)jdk8及后续版本对高并发的支持。
  4. (可选)很多三方工具库,也提供了对多并发的支持。也建议了解一下,例如Google Guava。
  5. List item
  6. 传统的IO性能太低,无法应对高并发的压力。因此需要学习IO的升级版:NIO和AIO。
  7. 说起“NIO”,就必然要提NIO框架-Netty。因此,Netty少不了。
  8. “分布式”是“高并发”的解决方案,因此需要学习分布式。
  9. 说起“分布式”,就必然要提“微服务”。因此,微服务少不了。
  10. 说起“微服务”,就必然要提spring boot和spring cloud,二者少不了。
  11. 除了spring cloud以外,dubbo(dubbox)也是一款优秀的分布式治理框架,要学。
  12. spring cloud等是分布式框架,最好还要学习一下这些框架的底层技术,也就是:网络编程、RPC、RMI等。
  13. 提到RPC,就要学习它的常见支撑技术:protobuf、thrift、grpc。
  14. 有没有高并发编程框架?有,disruptor。
  15. 除了编码以外,数据库在高并发面前更加脆弱。因此需要学习支持高并发的数据库架构,大致包含了:数据库集群搭建、主从同步、读写分离、分库分表、高可用组件haproxy+keepalived等。
  16. 除了NB的数据库架构以外,还需要对SQL语句进行优化,因此SQL优化少不了。
  17. SQL优化只是数据库优化的一部分,还需要学习数据库其他方面的优化:数据库引擎、索引结构、设计原则等。
  18. 如果数据量特别大,再NB的关系型数据库架构也不行。还得学分布式数据库(hbase等)。
  19. 如果请求量特别大,就需要学习大数据技术:hadoop生态、spark生态等。
  20. 高并发需要限流:网关(nginx、lvs等)。
  21. 高并发需要缓存:缓存中间件(hashmap、redis、SSDB等)。
  22. 如何知道自己写的系统,能否支撑高并发压力?得了解一下相关的测试技术:压力测试、性能测试等。

很多架构师,最初都只是某一领域(或某一技术)的专家,慢慢积累,最后才会全面的成长。

最后

在这里插入图片描述

👇🏻 添加 博主 获取更多资料👇🏻
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值