Java服务器端学习路线总纲

前言:本人立下规划,三年内成为一个能搭建DAU(日活跃人数)达到千万级别的高并发和高性能的服务器端的男人。主要是先学习Java SSM框架,然后用当下很火的SpringBoot+SpringMVC+MyBatis重构自己的社交APP的服务端程序代码,然后再学学Redis缓存和ngnix高并发容器,最后再使用阿里分布式框架Dubbo和微服务框架Spring Cloud。并在这过程中熟悉Maven项目管理工具和Git项目版本管理工具等等开发利器的使用。

第一阶段:Java的精华部分知识复习

多线程并发编程、网络编程、泛型、反射机制和注解,还有设计模式中的“工厂模式”(DI)和“代理模式”(AOP)等等

第二阶段:JDBC连接Mysql和数据库SQL基础(包括增删改查操作以及多表查询)

在学校时,《数据库系统》这门课+课程设计,已经学习并多次实验练习,忽略

第三阶段:HTML+CSS+JavaScript基础简单了解,还有ajax技术

在学校时,《Web网站设计与建设》这门课+课程设计,已经写过自己社交项目的萌土官网,去看看ajax异步加载技术即可

这是Web前端网页开发的基础,不熟悉的话有必要了解一下,以便B/S交互。

第四阶段:Servlet/JSP开发,还有MVC模式的设计理念

Servlet/JSP开发,从此开始踏入JavaWeb开发的第一步,包括Servlet API,XML文件,Tomcat服务器的部署和使用,了解HTTP协,Json数据格式传输。这是Java Web开的基础,可以帮助我们了解C/S(客户端和服务器端)的交互过程,SpringMVC就是基于Servlet实现的。

而MVC模式用于应用程序的分层开发,MVC要实现的目标是将数据、业务逻辑和软件用户界面分离以提高代码的可扩展性和可维护性。

 

第五阶段:Java三大框架,Spring+SpringMVC+MyBatis

Java服务器端开发的精华部分,重点学习。(重要)

第六阶段:SpringBoot

它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。(重要)

第七阶段:Linux发行版Centos系统部署服务器环境,了解常用linux命令和shell脚本

Centos系统是当前互联网公司普遍采用的高稳定性的服务器系统。我们要了解常用的Linux命令,并在上面安装好Tomcat和Mysql等服务端运行环境。

第八阶段:Redis缓存

NoSQL技术,泛指非关系型的数据库。随着大数据时代的到来,越来越多的网站、应用系统需要支撑海量数据存储,高并发请求、高可用、高可扩展性等特性要求,传统的关系型数据库在应付这些调整已经显得力不从心,暴露了许多能以克服的问题。由此,各种各样的NoSQL(Not Only SQL)数据库作为传统关系型数据的一个有力补充得到迅猛发展。

Redis和MongoDB是当前使用最广泛的NoSQL数据库,NoSQL技术是针对传统关系数据库的补充和升级。Redis作为基于内存的缓存系统,常用来和服务端关系型数据库搭配使用,解决互联网应用高并发难题。

为了运行一个优化热门查询性能的Redis缓存,首先应确定你希望缓存的查询结果,应重点关注最常用的和最耗时的查询。

Reids往内存中存储最常用的查询数据备份,当数据没有发生本质改变的时候不去数据库中查询,而是去内存中取数据,这样就可以降低数据库的读写次数,从而提高了网站效率。

第九阶段:ngnix高并发和负载均衡

在大型网站高并发处理的情况下,Nginx是Apache服务器容器不错的替代品,其特点是占有内存少,并发能力强,能够支持高达 50,000 个并发连接数的响应。Nginx还可以作为负载均衡服务,将请求/数据【均匀】分摊到多个操作单元上执行。

Nginx—大型网站高并发处理

 

第十阶段:Shiro权限安全框架

Apache Shiro是一个强大且易用的Java安全框架,用来执行身份验证、授权、密码和会话管理。简单来说,Shiro就是一个鉴权框架,鉴(Authentication)是指用户登录验证,权(Authorization)是指用户权限控制。

第十一阶段:ElasticSearch搜索服务器

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,是一种流行的企业级搜索引擎。

ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力,可以运用于云计算中。

第十一阶段:NIO知识和Netty异步高性能的通信框架

java.nio全称java non-blocking IO,是指JDK 1.4 及以上版本里提供的新api(实际上是 New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。所以,nio就是为高并发请求而诞生。

netty 是一个基于nio的客户端和服务器端编程框架,netty提供异步的,事件驱动的网络应用程序框架和工具,可以快速开发高可用的客户端和服务器。

阿里的开源分布式框架Dubbo就是采用netty作为基础通信组件。

第十三阶段:Dubbo分布式框架

高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的。

Dubbo是阿里集团开源的一个极为出名的开源 RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是极其鲜明的特色。

第十四阶段:微服务框架SpringCloud

业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,

第十五阶段:Docker与虚拟化

虚拟化是通过软件的方式模拟实体服务器,其初衷是为了解决“一种应用占用一台服务器”模式所带来的服务器数量剧增的问题,从而降低数据中心复杂度,简化管理难度。

所以,虚拟化的目的是为了在同一个主机上运行多个系统或应用,从而提高系统资源的利用率,并带来降低成本、方便管理和容错容灾等好处。

对了,还有Restful风格API的设计和WebService这种远程调用技术可以简单了解一下。

 

Java服务端开发利器

工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的。

Maven,项目管理工具

Git,项目版本控制管理工具

Swagger, 规范的API接口文档自动生成工具(springfox-swagger2)

Jenkins ,持续集成工具

Log4j,    强大的日志记录工具

Junit,  单元测试框架

Alibaba Java Coding Guidelines ,代码代码规范检查工具

这些工具不用特别去学,直接去使用,用多了自然而言就熟悉了。
 

参考链接:

这些年,JavaWeb开发技术演进过程

走向架构师——1~3年java程序员面试必备的技能

你可能感兴趣的:(Java服务器端)