JAVA架构师进阶
2019-02-28 10:03:26 12 举报
AI智能生成
JAVA进阶架构内容,基础进阶,高性能架构,微服务架构,开源框架,团队合作
作者其他创作
大纲/内容
Java基础知识
JVM性能调优
1. Java内存区域
虚拟机的历史
运行时数据区域
深入辨析堆和栈
方法的出入栈
虚拟机中的对象
堆参数设置和内存溢出实战
2. 垃圾回收器和内存非配策略
GC概述
判断对象的存活
辨析强、弱等各种引用
GC算法
分代收集
垃圾回收器
Stop The World现象
GC日志解读
内存分配与回收策略
内存泄露和内存溢出辨析
JDK为我们提供的工具
了解MAT (Memory Analyzer Tool)
3. JVM的执行子系统
Class类文件的本质
Class文件格式
字节码指令
类加载机制
栈帧详解
方法调用详解
基于栈的字节码解析执行引擎
4. 编写高效优雅的Java程序
构造器参数太多怎么办
不需要实例化的类应该构造器私有
不要创建不必要的对象
避免使用终结方法(finalize)
使类和成员的可访问性最小化
使可变性最小化
优先使用复合
接口优于抽象类
可变参数要谨慎使用
返回零长度的数组或集合,不要返回null
优先使用标准的异常
用枚举代替int常量
将局部变量的作用域最小化
精确计算,避免使用float和double
当心字符串连接的性能
5. 深入了解性能优化
常用的性能评价/测试指标
常用的性能优化手段
详细了解应用服务器性能优化
网络编程与高效IO
网络协议
网络模型
TCP
UDP
HTTP
原生JDK网络编程(NIO/BIO)
1. Netty应用
Netty是什么?为什么要用Netty?
第一个Netty程序
Netty组件再了解
解决粘包,半包问题
编解码器框架
序列化问题
单元测试
2. Netty进阶和实战
实现UDP通信
服务器推送技术
WebSocket通信
实现自己的通信框架
3. Netty源码分析
引导过程分析
EventLoop和EventLoopGroup分析
服务端接受连接事件分析OP_ACCEPT
分析读事件OP_READ
分析写数据和处理写数据OP_WRITE
分析客户端连接和连接事件OP_CONNECT
并发编程进阶
1. 线程基础、线程之间的共享和协作
基础概念
启动和终止线程
线程间的共享
线程间的协作
2. 线程的并发工具类
Fork/Join
CountDownLatch作用、应用场景和实战
CyclicBarrier作用、应用场景和实战
Semaphore作、应用场景和实战
Exchange作用、应用场景和实战
Callable、Future和FutureTask
3. 原子操作CAS
CAS的原理
CAS的问题
原子操作类的使用
4. 显式锁和AQS
显式锁
LockSupport工具进阶
AbstractQueuedSynchronizer实现及源码分析
5. 并发容器
ConcurrentHashMap
其他并发容器
阻塞队列
6. 线程池
什么是线程池?为什么要用线程池?
实现一个我们自己的线程池
JDK中的线程池
线程池的工作机制
合理配置线程池
Executor框架
CompletionService
7. 并发安全
类的线程安全
如何做到类的线程安全
线程不安全引发的问题
线程安全的单例模式
8. JMM和底层实现原理
现代计算机物理上的内存模型
Java内存模型 (JMM)
Mysql深度优化
1. Mysql逻辑架构入门介绍
2. 存储引擎
MyISAM
Innodb
Archive
Memory
Federated
3. 业务设计
锁
事务
逻辑设计
物理设计
4. 查询以及索引
慢查询
索引
执行计划
SQL优化
Linux
Linux注意事项
Linux基础之类
Linux Jdk1.8环境安装及操作指令
Linux Tomcat安装与停启
高性能架构
分布式架构思维
大型互联网架构演进过程
架构师应具备的分布式知识
主流分布式架构设计详解
分布式协调和分流
Zookeeper分布式环境指挥官
zk的入门
zk开发基础
zookeeper应用实战
协议及算法分析
Nginx高并发分流进阶实战
nginx安装
正反向代理
nginx进程模型
核心配置结构
日志配置及签个
location规则
rewrite的使用
动静分离
跨域配置
缓存配置,Gzip配置
https配置
横向扩展带来的问题
LVS
keepalived
异步与消息中间件
概述
什么是消息中间件? 和RPC有何区别?
消息中间件使用场景介绍
消息中间件(ActiveMQ、RabbitMQ、RocketMQ、Kafka)简介及对比
ActiveMQ消息中间件
JMS规范
ActiveMQ使用
ActiveMQ高级特性和用法
企业级高可用集群部署方案
RabbitMQ消息中间件
AMQP规范和RabbitMQ基本概念
Windows下安装和运行
Linux下安装与配置
原生Java客户端使用
消息发布时的权衡
消息消费时的权衡
消息的拒绝
控制队列
消息的属性
与Spring集成
集群化与镜像队列
Kafka百万级吞吐实战
Kafka入门
Kafka的安装和配置参数
Kafka的集群
Kafka的生产者和消费者
整合Spring
深入理解Kafka
保证Kafka的可靠数据传递
缓存和NoSQL
Redis高性能缓存数据库
Redis初入门及介绍
Java客户端
Redis常用命令及多项目设计实战
数据一致性
Redis性能优化
Redis主从模式
Redis持久化
哨兵核心机制
高可用集群
MongoDB
MongoDB入门
nosql与sql使用场景分析
基础概念
mongodb进阶
常用命令
快速入门
mongodo客户端驱动
增删改查与聚合
安全控制
mongodb高级知识
存储引擎
索引
高可用
最佳实践与注意事项
缓存解决方案实战
缓存的概念
SpringCache的用法
缓存的一致性策略
缓存雪崩方案
缓存穿透方案
高可用数据储存
MySQL高性能储存实战
Mycat进阶实战
FastDFS分布式文件储存实战
文件储存实战
文件同步实战
文件查询实战
分布式部署实战
分布式常见常见方案实战
事务概念
事务与锁
分布式事务产生背景
X/OpenDTP事务模型
标准分布式事务
分布式事务解决方案
两阶段提交
BASE理论与柔性事务
TCC方案
补偿性方案
异步确保与最大努力型
单店登陆方案
单店登陆的问题背景
页面跨域问题
Session跨域共享方案
Session的扩展
分布式任务调度方案
Quartz调度的用法
Elastic-Job示例
分布式调度的疑难点
Quartz集群定制化分布式调度
开源框架知识点
Spring
IOC 容器及源码解读
容器启动及配置类加载流程
组件添加
组件赋值
组件注入
后置处理器
声明式事务源码解读
Spring容器源码解读
AOP使用与源码分析
@EnableAspectJAutoProxy注解
切面注解使用解析
AOP源码解读实战
Spring MVC
Servlet 3.0 的注解实现
ServletContainerInitializer 容器初始化
ServletRegistration注册
FilterRegisteration过滤器
ServletContext
性能实战
基于Servlet3.0异步
Callable异步
DeferredResult异步
Mybatis
概述
为什么要用ORM
为什么使用MyBatis
Mybatis快速入门
进阶
Mybatis的配置
映射器的配置
动态SQL
与Spring的集成
缓存
关联查询
多对多级联
代码生成器
高级
源码分析
插件开发
分页插件使用与源码分析
微服务架构
RPC原理
RMI的实现
原理
服务注册与发布
动态代理
序列化与反射
SpringBoot底层探析
SpringBoot快速入门
SpringBoot与微服务之间的关系
环境搭建
继承Springmvc
继承mybatis
整合日志
集成jsp
全集异常捕获
打包部署
热部署
集成Swagger2构建API管理体系
核心组件
starter
actuator
auto-configuration
cli
jta+atomikos的分布式事务
性能优化
jvm参数
扫包优化
undertow容器
@SpringBootApplication源码解读
SpringCloud高级进阶
Zuul路由网管详解及源码探析
Ribbon客户端负载均衡原理与算法详解,与服务端均衡负载区别
Feign声明式服务调用方法实现
Hystrix服务熔断及服务降级实战
Eureka注册中心分析
Config配置服务中心与svn、git快速集成
BUS消息总线技术
Sleuth调用链路追踪
Stream消息驱动的微服务
Docker虚拟化技术
Docker介绍、安装与使用
Docker组成
镜像
容器
私有仓库
Docker Compose部署脚本
Docker Service 服务编排
Docker Redis分布式集群部署
Docker File构建
通过Maven插件打包Docker镜像
Docker部署及运行应用程序
Kubernetes编配
基于Docker构建Mysql集群实战
高可用SpringCloud微服务与Docker继承实现动态扩展实战
团队协作开发
Git
Git基本工作原理
与SVN对比
基本运作流程
Git常用操作及问题处理
工程初始化及克隆
文件提交
分支与常用标签应用
远程仓库管理
合并与冲突解决
架构师职责: Git Flow必备技能,规范团队Git操作
maven
安装和配置
Windows上安装
Linux上安装
目录分析
使用入门
编写POM
编写主代码
编写测试代码
打包和运行
坐标和依赖
Maven坐标以及详解
依赖的配置
依赖的范围
传递性依赖和依赖调解
聚合与集成
聚合
继承
聚合与继承的关系
约定优于配置
反应堆
生命周期与插件
clean生命周期
default生命周期
site生命周期
命令行与生命周期
插件目标
插件绑定
插件配置
常用插件
仓库
本地仓库
远程仓库
中央仓库
快照版本
远程仓库的配置
快照版本与镜像
版本管理
版本号定义约定
主干、标签与分支
私服-Nexus
安装Nexus
Nexus的仓库与仓库组
Nexus使用、上传、配置
Jenkins
环境搭建
Jenkins安装
Jenkins Tomcat安装
Jenkins Git安装
Jenkins Maven安装
配置管理
Jenkins配置
Jenkins管理
Jenkins配置程序作业
Jenkins配置单元测试
Jenkins配置自动化测试
部署分析
Jenkins配置邮件通知
Jenkins配置报表
Jenkins代码分析
Jenkins分布式构建
Jenkins自动部署
高级进阶
Jenkins指标与趋势
Jenkins服务器维护
Jenkins持续部署
Jenkins插件管理
Jenkins备份
Jenkins远程测试
Dubbo应用及源码解读
dubbo简介
分布式中rpc调用的痛点
dubbo主要解决那些rpc问题
dubbo设计的概念
dubbo的部署安装
dubbo的配置使用
xml方式
注解方式
api方式
dubbo中各元素属性学习
dubbo在项目的用法
类与类的依赖关系说明
项目之间的依赖划分
实战拆解分布式
dubbo源码解析与示例
dubbo的模块及层级
dubbo的初始化过程
dubbo的服务暴露
dubbo的服务引用
dubbo的服务拦截
服务的注册与发现
0 条评论
下一页