设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

必看!Java后端,亮剑诛仙(知识点总结)(2)

发布时间:2019-07-18 12:57 所属栏目:21 来源:小姐姐养的狗
导读:假如说数据结构和算法是理论,这里就是支撑理论的实现。Java玩的好不好,就是说这里。 书籍 《Effective Java 中文版》 《数据结构与算法分析:Java语言描述》 SSM 你可能会用SSM开发项目,觉得编程无非就这些东西

假如说数据结构和算法是理论,这里就是支撑理论的实现。Java玩的好不好,就是说这里。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《Effective Java 中文版》

《数据结构与算法分析:Java语言描述》

SSM

你可能会用SSM开发项目,觉得编程无非就这些东西。设计模式烂记于心,IOC、AOP手到擒来。这里集中了大部分同行,有些可能到此为止就Ok了,因为有些同学接下来的重点是项目管理,而不是技术。

SSM擅长的是Web开发。目前的表现形式逐渐多样化,随着前后端分离的盛行,Restful这种有着明确语义的模式逐渐流行。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《Head First 设计模式》

《Spring揭秘》

《SpringBoot揭秘》

《MyBatis技术内幕》

《深入剖析Tomcat》

其实跟着文档走一遍就行了,很多书籍就是翻译而已。

并发编程

现在的服务器都是多核的了,并发编程也来越多。java有多种创建多线程的方式,不过目前使用线程池的多一些。线程池的基础就是AQS,基于AQS,又有很多的工具类扩展。

java同时有很多加锁和线程同步的方式,锁有乐观锁/悲观锁之分,又有公平锁/非公平锁之分,写一段死锁代码还是有点难度的。

有两个问题被考察的频率非常高,一个是ABA,一个是伪共享。并发编程一般和网络编程配对,提供对某个问题的一系列解决方案。

这是java中一块难啃的骨头。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《Java核心技术系列:Java多线程编程核心技术》

《Java性能权威指南》

《Java并发编程实战》

性能优化 & 故障排查

有人认为这应该是SRE的范畴,但通常最熟悉业务的却是开发,技术并没有什么明显的界限。掌握这些内容,会让你在芸芸大众中脱颖而出。

从操作系统的内核优化到数据库的索引和事务优化,这部分的技能是建立在牢固的基础之上的。也就是操作系统的基础。

操作系统的每个组件都有可能出现问题,对于一个java后端来说,要能够非常容易的定位到这些问题。比如常见的内存溢出问题。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《性能之巅:洞悉系统、企业与云计算》

《高性能Linux服务器构建实战》

Java进阶

下面有些知识点,界限是非常模糊的。它们你中有我,我中有你,可以说是一个整体。

Redis

缓存可以说是计算机系统中应用最广泛的技术了。对于分布式缓存来说,最常用的就是Redis了。由于其数据结构丰富,被应用的场景越来越多。

基本的5种数据类型都知道,但你要说出其他几种,给人的印象就不一样了。Redis有主从和Cluster两种集群模式,高可用配置也不相同。

Redis几乎能适应除搜索外的所有互联网业务,对于其使用来说,一些规范限制是非常有必要的。一般速度越快的系统,越容易被长尾操作给拖死。所以,对于info命令的内容,也应有了解。

有三个点要尤其注意:分布式锁、限流,以及和源数据的同步问题。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《Redis实战 》

《Redis开发与运维》

《Redis设计与实现》

Kafka

MQ是分布式系统中非常重要的组件,目前使用最广泛的就是Kafka。除了用在大数据场景中,Kafka也能够在业务系统中使用。

Kafka的速度非常快,根据ACK的级别配置,可靠性会增加,但速度会减缓。对于消息系统来说,监控报警是非常重要的一环,能够提前预知系统的问题。Kafka的集群自身就是高可用的,依赖Zookeeper组件,了解一些基本概念,包括ISR,能够更加详细的了解这个过程。

必看!Java后端,亮剑诛仙(知识点总结)

书籍

《Kafka入门与实践》

《Kafka技术内幕》

分库分表 ShardingJDBC

随着数据的增长,MySQL本身出现了瓶颈。分库分表是针对关系型数据库的一套解决方案,把它改造成分布式数据库。

根据切分层次,最像回事的是在代理层和驱动层进行切入。ShardingJDBC就是在驱动层的一个组件。

组件本身只是一个问题。在真正的切分之前,会有垂直拆分和水平拆分之分。我们的线上业务也要不停机的进行拆分和切换,一个全量和增量同步工具都是需要的。

有条件经历这个过程的,都是一笔宝贵的财富。它不仅在技术上,而且在流程上都有诸多挑战。你会体验到技术、流程、管理,是不分家的。

必看!Java后端,亮剑诛仙(知识点总结)

微服务 & 中间件

目前最火的微服务架构就是SpringCloud。这对熟悉SSM开发的同学来说, 是非常容易上手的。微服务有注册中心、RPC、负载均衡、熔断限流、网关等关键组件,有些组件有很多不同的替代品。

必看!Java后端,亮剑诛仙(知识点总结)

微服务拆分后又引申出一系列问题,需要一些其他中间件支持。比如监控报警、ELKB、配置中心、调度中心、调用链等。虽然没有微服务也需要它们,但明显组合起来,效果会好的多。

各种A/B测试,金丝雀,灰度等,基本是终极目标之一。

微服务是一个复杂的整体,同时融合了技术和流程管理方面的内容。

书籍

《可伸缩服务架构:框架与中间件》

《Spring Cloud与Docker微服务架构实战》

《架构修炼之道》

分布式

当服务器数量增加,一些服务,包括上面提到的微服务,都需要进行协调和交互。这就是分布式系统。

分布式的理论基础有CAP、BASE等。针对一致性,有特别多的算法,其中Raft作为易懂的新贵,使用越来越广泛。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读