Java架构师全套视频,知识要点整理,初学Java的同学也可以备用,因为这些内容对于立志成为架构师的你不可或缺。我们先从Java架构师的岗位要求说起:
除了对工作经验、知识结构、逻辑思维方面的要求,在具体技术层面可以看出Spring全家桶、消息中间件ActiveMQ、JVM性能调优都占有比较重要的位置,下面我们将介绍这些技术要点,并结合分布式电商项目,帮你快速梳理。这些内容展开来讲比较多,如果需要详细学习资料,在私信中回复“学习”即可获取!前方高能,请上车。
Spring全家桶
Spring全家桶其实可以将其看做是一套技术合集,它包括SpringMVC、SpringBoot、SpringCloud、SpringCloudDataflow等解决方案。很多技术研发人员将Spring作为项目的核心内容,当然也是面试必考。
1.SpringBoot
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和springcloud联合部署。
SpringBoot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
2.SpringData
是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:jdbc、Redis、MongoDB等。
3.SpringCloud
是一套完整的微服务解决方案,是一系列不同功能的微服务框架的集合。SpringCloud基于SpringBoot,简化了分布式系统的开发,集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。比如sleuth提供了全链路追踪能力,Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件。config组件提供了动态配置能力,bus组件支持使用RabbitMQ、kafka、Activemq等消息队列,实现分布式服务之间的事件通信。
SpringBoot对于掌握SpringCloud部分的技术非常重要,已经有不少企业应用到了自己的项目中,也常见于程序员架构师面试当中。
ActiveMQ及其应用场景
ActiveMQ是Apache出品,是目前比较流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMSProvide实现。尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。
应用场景:
消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有这深入的应用。
队列的主要作用:消除高并发访问高峰,加快网站的响应速度。
在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,对数据库造成巨大的压力,同时也使系统响应延迟加剧;
早使用队列后,用户的请求发给队列后立即返回;
例如:当然不能直接给客户提示订单提交成功,在淘宝上提示:"您提交了订单,请等等系统确认"
再由消息队列的消费者进程从消息队列中获取数据库,异步写入数据库。
由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可能得到有效改善。
JVM性能调优
JVM内存模型及垃圾收集算法
1.根据Java虚拟机规范,JVM将内存划分为:
New(年轻代)、Tenured(年老代)、永久代(Perm)
其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize-XX:MaxPermSize等参数调整其大小。
年轻代(New):年轻代用来存放JVM刚分配的Java对象
年老代(Tenured):年轻代中经过垃圾回收没有回收掉的对象将被Copy到年老代
永久代(Perm):永久代存放Class、Method元信息,其大小跟项目的规模、类、方法的量有关,一般设置为128M就足够,设置原则是预留30%的空间。
New又分为几个部分:
Eden:Eden用来存放JVM刚分配的对象
Survivor:两个Survivor空间一样大,当Eden中的对象经过垃圾回收没有被回收掉时,会在两个Survivor之间来回Copy,当满足某个条件,比如Copy次数,就会被Copy到Tenured。显然,Survivor只是增加了对象在年轻代中的逗留时间,增加了被垃圾回收的可能性。
2.垃圾回收算法
垃圾回收算法可以分为三类,都基于标记-清除(复制)算法:
Serial算法(单线程)
并行算法
并发算法
JVM会根据机器的硬件配置对每个内存代选择适合的回收算法,比如,如果机器多于1个核,会对年轻代选择并行算法,关于选择细节请参考JVM调优文档。
稍微解释下的是,并行算法是用多线程进行垃圾回收,回收期间会暂停程序的执行,而并发算法,也是多线程回收,但期间不停止应用执行。所以,并发算法适用于交互性高的一些程序。经过观察,并发算法会减少年轻代的大小,其实就是使用了一个大的年老代,这反过来跟并行算法相比吞吐量相对较低。
以上就是北大青鸟长沙麓谷校区Java培训机构小编介绍的“Java架构师全套视频,知识要点整理”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。