时间飞逝,转眼间毕业七年多,从事 Java 开发也六年了。我在想,也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。
写这一套 Java 面试必备系列文章的初衷。
今天给大家看看阿里T4专家给大家总结的六大技术实战文档:SpringCloud与Docker、springboot、Tomcat、Nginx、MySQL、Redis等等。
下面的是阿里大佬级别、薪资和股票的表格,大家可以简单看一下,先给自己一个目标~~
本文档由三部分组成,各部分及其章节的结构如下所示。
第一部分架构篇
第1章微服务架构与Spring Cloud
第2章微服务架构最佳设计
第3章电商平台微服务设计实例
第二部分开发篇
第4章开发工具选用及Spring Boot基础
第5章电商平台微服务工程设计
第6章微服务治理基础服务开发
第7章Rest API微服务开发
第8章Web UI微服务开发
第9章电商平台移动商城开发
第10章商家管理后台与SSO设计
第11章平台管理后台开发
第三部分运维篇
第12章服务器架构设计与Docker使用
第13章数据库集群设计与高可用读写分离实施
第14章分布式文件系统等基础设施安装与配置
第15章使用自动化构建工具Jenkins实现CI/CD
第1章:介绍Java EE,然后指出其缺点,引入了流行的Spring,同时也说明Spring经过这么多年发展后暴露的一些缺点, 从而引出Spring Boot,并以两个简要例子作为说明。
第2章:对Spring Boot应用的开发环境做了说明,包括Java开发环境的安装和配置,Maven的安装和配置,设置国内仓库镜像,还有常用的Maven命令。本章最后介绍Spring历史以及现有开发团队,并介绍Spring框架的AOP和IoC两个核心技术
第3章:介绍MVC技术,前半部分重点介绍URL映射到Cntoller,以及映射到Cotoller方法的参数、参数类型转化、参数验证。后半部分简单介绍MVC中的视图技术FeemakerBeetl,以及Jackson序列化技术。Betl和Jackson将在第4章详细介绍。
第4章:介绍笔者的开源技术Beetl后端模板引擎,作为国内流行的模板引擎之一,具有简单易学、功能/性能强大、支持MVC分离开发等特点。另外一部分详细介绍Jackson的JSON序列化技术。Jackson 不仅作为Spring MVC中的JSON默认工具,也是Spring Boot分布式技术中常采用的JSON序列化技术。
第5章:介绍以SQL为中心的数据库访问工具BeetlSQL,这是笔者的另外-款流行Dao 工具,SQL 在markdown文件中管理,内置增删改查、轻量级ORM功能、代码生成、主从支持、跨多种数据库等特点,适合那些更喜欢以SQL方式访问数据库的开发者。
第6章:介绍以面向对象为中心的数据库访问工具Spring Data JPA。本章由易到难,先从Spring Data提供的功能入手,介绍如何完成数据库简单的增删改查功能,然后引入JPA来解决应用中不可避免的复杂SQL查询。
第7章:介绍Spring Boot高级特性,如常用的Spring Boot 的配置、日志配置、应用配置的读取、Spring Boot自动装配技术和Spring Boot Starter 实现。
第8章:介绍如何部署Spring Boot 应用,包括可执行jar,以及通过war部署到应用服务器上。应用经常面对多个环境,如开发、测试,还有准线上、线上,以及多个Demo环境,SpringBoot提供Profile来实现多环境部署。
第9章:介绍单元测试概念,以及Spring Boot 下的单元测试支持,包括MVC单元测试、Mock测试,以及面向数据库应用的测试方案。
下半部分介绍与Spring Boot相关的分布式技术。
第10章:介绍RESTful风格的架构,然后介绍Spring Boot如何集成以提供REST服务,使用ResTemplate调用REST服务。本章最后也重点介绍了Swagger 3.0技术,以方便REST的接口的交流、开发和测试。
第11章:介绍MongoDB的安装和使用,然后介绍Spring Boot如何集成MongoDB,同时还介绍了如何用MongoTemplate访问MongoDB。
第12章:介绍Redis服务器的安装和使用,Redis常用的数据结构和操作命令。然后介绍SpringBoot如何集成Redis,如何使用RedisTemplate来操作Redis本章后半部分深入介绍了RedisTemplate提供的序列化机制。
第13章:介绍Elasticsearch 的安装和使用,Elasticsearch 既具有全文搜索功能,也能像MongoDB那样,具备NoSQL的功能。本章介绍通过REST和Spring Data两种方式访问Elasticsearch.
第14章:介绍Spring Boot Cache,并重点介绍Redis作为分布式缓存的实现。在此基础上,改进了Redis 分布式缓存,通过较少的代码实现了一个具备- -二级缓存的技术方案。
第15章: Spring Boot应用水平扩展,需实现无会话状态技术,Spring Session提供了分布式会话管理,本章介绍了Nginx作为反向代理的内容,以及Spring Session的Redis实现及其源码分析。
第16章:基于第15章SpringBoot应用水平扩展技术必然带来分布式协调要求,ZooKeeper是一个广泛使用的分布式协调器。本章介绍ZooKeeper的安装和使用,对领导选取、分布式锁和服务注册三个常用功能做了重点描述,并在Spring Boot应用中采用Curator 来完成这三个功能。
第17章:SpringBoot提供了内置监控功能,使得用户通过HTTP请求就能知晓服务器的健康状态,如数据源是否可用、NoSQL服务是否可用、最近的HTTP访问的内容等监控信息。本章讲述了线程栈、内存、在线日志、HTTP访问、RequetMapping等常用监控功能。其中还讲述通过dump线程栈和内存来解决SpringBoot应用中的-些性能故障。
第1章照例对Tomcat进行简单的介绍,主要包括安装、启动、部署应用以及Tomcat目录结构。如果你是- -位初级开发者,阅读完本章,你会对Tomcat有最基本的认识,基本可以覆盖应用开发过程中能够涉及的各种问题。如果你已经可以熟练部署使用Tomcat, 那么完全可以跳过这一章。
第2章主要介绍了Tomcat 容器、链接器各组件的基本概念,阅读这一- 章有助于初步了解Tomcat的架构设计。
第35章、第89章对Tomcat架构及相关模块进行了深入的讲解。如果你希望详细了解Tomcat架构的各个方面,这部分应该是你的侧重点。如果你是一名 中间件设计人员或者系统架构师,可以从中发现许多值得学习和借鉴的地方,包括中间件设计、系统部署架构的构建以及安全管理等多个方面。
第6章和第7章主要介绍了Tomcat的管理以及与Web服务器的集成,包括Web控制台、JMX、Ant这3种管理方式,以及Tomcat与当前使用最广泛的Apache HTTP Server. Nginx等Web服务器的集成,以满足不同的运维场景需要。如果你是- t 名运维人员,建议你仔细阅读这两章内容,因为这有助于我们了解Tomcat相关的系统访问监控、集群部署以及负载均衡。
第10章侧重于系统的性能优化,讲解如何优化Tomcat,以便提高请求处理速度,增加系统并发访问量。
第11章主要介绍了Tomcat提供的一些附加功能,如嵌入式启动、JNDI、Comet 和WebSocket实现。如果你对嵌入式启动Tomcat或者基于Tomcat进行服务器推送感兴趣,那么这一章不容错过。
本文档一共由三个部分组成。
第一部分对 Redis进行了介绍,说明了Redis的基本使用方法、它拥有的5种数据结构以及操作这5种数据结构的命令,并讲解了如何使用Redis去构建文章聚合网站、cookie、购物车、网页缓存、数据库行缓存等-一系列程序。
第二部分对Redis命令进行了更详细的介绍,并展示了如何使用Redis去构建更为复杂的辅助工具和应用程序,并在最后展示了如何使用Redis去构建–个简单的社交网站。
第三部分对Redis用户经常会遇到的一-些问题进行了介绍,讲解了降低Redis内存占用的方法、扩展Redis性能的方法以及使用Lua语言进行脚本编程的方法。
本文档共分为4大部分18个章节,分别从入门篇、功能篇、实现篇和应用篇等4个方面对Nginx服务器进行了阐述。
人门篇简单介绍了目前的Web服务器市场和Nginx服务器的诞生历史,主要对Nginx服务器的安装和基础配置、优化配置进行了详细的分析和说明,在这一部分也简单 介绍了Nginx服务器的模块化结构,这一方面为我们学习后面功能篇中的内容进行知识准备,另- -方 面也为我们]学习实现篇中的内容做一个铺垫。
功能篇从Nginx服务器常用的功能入手,分别介绍了如何配置Nginx服务器的gzip功能、rewrite功能、proxy功能、cache 功能和邮件服务功能,以帮助大家能够根据不同的实际需求对Nginx服务器功能模块进行定制。
实现篇深人到Nginx服务器的源码实现,对Nginx服务器的初始化启动、主进程和工作进程的功能实现源码进行了详细的分析,帮助大家更深-步理解Nginx服务器的运行过程和实现技术,在这一部分还简单地介绍了Nginx服务器模块编程的相关内容,这为大家进行Nginx服务器模块设计提供了思路。
应用篇主要列举了Nginx服务器在动态网站建设中的应用,同时也介绍了Nginx 服务器应用中比较经典的一个架构一LNAMP 的配置部署,为大家展示了在实际应用中如何使用Nginx服务器提供Web服务的配置实例。
本文档在知识结构.上分为7部分。
第1部分倔强青铜篇(第1~8章)。包括MySQL简介、主流分支版本、数据库安装/启动/关闭、权限管理、MySQL数据库的内存池结构、存储引擎、线程作用、刷新机制、数据库文件、表管理、字符集、统计信息与数据碎片整理的方法。还包括对索引的详细解读,执行计划的分析、压力测试的展现、事务的介绍,以及对隔离级别的深度讲解,并结合锁一起展开学习。
第2部分秩序白银篇 (第9章)。介绍生产环境中常用的备份方法、逻辑备份和裸文件备.份。针对mysqldump、select… .into outfile、mydumper和xtrabackup 等备份恢复工具的原理展开详解及实践演练。
第3部分荣耀黄金篇(第 10~11章)。介绍主从复制的原理,对复制参数进行详细讲解,对半同步复制、多源复制、GTID复制进行全面解读与实践,对复制数据一致性的校验和复制管理技巧进行介绍,并解读主从复制中的各种报错故障。
第4部分尊贵铂金篇 (第12~15章)。介绍互联网主流的MySQL高可用集群架构,对MHA、Keepalived、PXC原理的解析、维护管理与实践,最后介绍ProxySQL这个强大的MySQL中间代理层的应用。
第5部分永恒钻石篇 (第16~17章)。介绍MySQL 5.7版本的新特性,以及通过硬件、操作系统、数据库、程序设计这四个维度来全面介绍MySQL数据库的优化。
第6部分至尊星耀篇 (第18~19章)。学习部署Lepus,监控MySQL与版本升级。
第7部分最强王者篇 第20章。MySQL面试总结。
1全球员工总数
截至2019年12月31日,员工总数为116,519人。
2岗位职级
阿里巴巴集团采用双序列职业发展体系:
一般来说,应届毕业生刚入职到阿里为P5,工作1-3年之后升职到 P6,阿里一般到 P7 才给配股票。
目前阿里需求量最大的职级范围分布在 P6-P8,这也是阿里集团占比最大的级别。P6 级别的程序员 title 是高级工程师,P7 便已经是专家级别,P8 则是高级专家。一般而言,江湖上行走小有名气的阿里程序员至少也是 P8 级别。P10 级别的存在就是传说中的大神级别,这个级别的程序员无一不是业界鼎鼎有名的存在,比如褚霸、毕玄等等。
3岗位薪酬
说到股票,就要普及一下常识了:股票是公司用来奖励员工忠诚度的,所以阿里分年限行权,想要离职套现真的是难,更不要提高额税收了。首先,归属要收高达45%的个税,然后得到的还是限制性股票,还不能马上卖呢。
好不容易可以出售的时候,还得交20%股票增值部分的个人所得税哦!更重要的是,你必须先缴税,才能归属,缴税还必须用现金!所以,拿的越多,先拿出的cash就越多,这里面的流动性风险不容小觑。
4绩效考核
绩效评分标准,分为六档,分别是:
5晋升条件
如果员工想要升级别,比如从 P6 升级到 P7,则需要进行述职,通过晋升委员会的面试,晋升委员会组成一般是你的直属领导、合作方业务部门领导、HRG、所在业务线领导等。
晋升至P8及以下,子公司内部评定;晋升到P9,集团专业委员会进行评审;M不得自主提名,M3及以下公司内one over one plus HR评审;晋升至M4进集团管理委员会评审。
P5升P6相对容易,再往上会越来越难,一般到P7都是团队技术leader了,P6到P7非常难,从员工到管理的那一步跨出去不容易。