一个入门级别的程序员,会简单业务的增删改查;
一个进阶级别的程序员,会对模块进行设计实现;
一个大神级的程序员,会对架构进行性能调优;
从古至今,每一个追求技术的程序员,都会对系统的性能进行高强度的压榨。
如何使得系统的性能发挥到最高?
从底层往上做简单的梳理:
-
CPU级别:要搞清楚总线锁和缓存一致
-
java语言级别:要灵活运用线程池、异步消息回调
-
中间件级别:尽量使用Reactor模型
-
结构性数据库:分库分表与集群
-
缓存集群要保证不可雪崩和穿透
-
大量数据要学会使用数据湖,同时结合批处理和流式计算
-
搜索超大规模的数据,还要达到毫秒级:就使用ES的云集群
-
JVM的崩溃,使用G1的垃圾回收
-
大量日志的处理,要学会使用大规模消息中间件集群
-
服务的数量众多,要使用云技术动态扩展
-
集中式访问的架构,要学会动静分离
-
对于复杂的逻辑,要实现简单的算法(重要)
优秀笔记记录: