那些Java架构师必知必会的技术

时间:2024-01-25 20:11:24

Java基础

并发编程专题

Executors线程池

并发编程 Lock 锁

  • Lock
  • 可重入锁Reetrantlock
  • 可重入读写锁ReetrantReadWriteLock
  • Condition
  • ReadWriteLock
  • LockSupport

并发类编程工具

  • CountDownLatch
  • CyclicBarrier
  • Semaphore
  • Exchange

并发编程容器collections

  • 并发Queue:BlockingQueue
  • Map:ConcurrentHashMap、HashMap、HashTable
  • 并发List Set:CopyOnWriteArrayList、CopyOnWriteArraySet、
  • ArrayList、 LinkedList
  • ConcurrentHashMap为何如此优秀?

内存模型

  • Condition
  • 简单却强大的 CAS
  • AQS的原理浅析
  • 重排序、可见性、顺序一致性
  • happens-before详解
  • Synchronized详解
  • Volatile详解
  • ThreadLocal详解

分布式专题

分布式协调Zookeeper

  • Zookeeper快速上手使用
  • Zookeeper集群部署
  • Zookeeper应用场景深入分析
  • Zookeeper的znode watcher ACL、
  • 客户端API详解
  • Zookeeper客户端源码分析
  • Zookeeper的日志与监控
  • 搭建3个节点的Zookeeper集群
  • 深入分析Zookeeper在Disconf配置中心的应用
  • 基于Zookeeper的分布式锁解决方案
  • Zookeeper Watcher核心机制深入源代码分析
  • Zookeeper 集群升级、迁移
  • 基于Zookeeper实现分布式服务器动态上下线感知
  • 深入分析Zookeeper Zab协议及选举机制源代码

分布式框架Dubbo

  • Dubbo管理中心及监控平台安装部署
  • Dubbo分布式服务器模块划分(领域驱动)
  • 基于Dubbo的分布式系统架构实战
  • Dubbo负载均衡策略分析
  • Dubbo服务调试之服务只订阅及服务只注册配置
  • Dubbo服务接口的设计原理
  • Dubbo设计原理及源代码分析
  • 基于Dubbo构建大型分布式电商平台实战雏形
  • Dubbo容错机制及高扩展性分析

分布式消息队列 - RabbitMQ

分布式消息队列 - Kafka

  • Kafka基于Zookeeper搭建高可用集群实战
  • Kafka消息处理过程剖析
  • Java客户端实现Kafka生产者与消费者实例
  • Kafka的副本机制及选举原理剖析
  • 基于Kafka实现应用日志实时上报统计分析

分布式消息队列 - RocketMq

  • 待定

分布式缓存Redis

  • 缓存击穿、穿透、雪崩预防策略
  • 精通Redis的数据结构
  • Redis主从复制原理及无磁盘复制分析
  • Redis管道模式详解
  • Redis缓存与数据库一致性解决方案
  • 基于Redis实现分布式锁
  • Redis中AOF和RDB持久化策略原理
  • Redis读写分离架构
  • Redis哨兵架构及数据丢失问题分析
  • Redis Cluster数据分布算法之Hash Slot
  • Redis使用常见问题及性能优化
  • Redis高可用及高伸缩架构实战
  • Redis批量查询优化
  • Redis高性能集群之Twemproxy Or Codis

搜索引擎 - Elasticsearch

分布式数据扩容 - MyCat

  • Mycat读写分离
  • Mycat水平切分
  • Mycat垂直切分
  • 基于Mycat分库分表策略剖析
  • Mycat全局序列号
  • Mycat全局表 ER表 分片策略分析
  • Mycat高可用架构方案实践
  • 数据库中间件初始Mycat
  • 基于Mycat实现mysql数据库读写分离
  • 基于Mycat实战之数据库切分策略剖析
  • Mycat全局表、Er表、分片策略分析
  • Sharding-jdbc

数据存储

  • Nosql简介及Mongodb基本概念
  • MongoDB支持的数据类型分析
  • MongoDB可视化客户端及Java api实践
  • 手写基于MongoDB的Orm框架
  • MongoDB企业级集群解决方案
  • MongoDB聚合、索引及基本执行命令
  • MongoDB数据分片、转存及恢复策略
  • Mysql主从复制及读写分离
  • Mysql+Keepalived实战双主高可用方案实践
  • Mysql高性能解决方案之分库分表
  • 必须掌握的Mysql优化指南
  • 理解Mysql底层B+树机制
  • SQL执行计划详解
  • 索引优化详解
  • SQL语句优化

后台服务

  • 基于Openresty部署应用层Nginx及Nginx+Lua实践
  • Nginx反向代理服务器及负载均衡服务器配置实战
  • 利用Keepalived+Nginx实践Nginx高可用方案
  • 基于Nginx实现访问控制、连接限制
  • Nginx动静分离实战
  • Nginx Location、Rewrite等语法配置及原理分析
  • Nginx提供Https服务
  • 基于Nginx+Lua完成访问流量是实时上报Kafka实战

高性能Nio框架

  • IO的基本概念,Nio、Aio、Bio深入分析
  • Nio的核心设计思想
  • Netty产生的背景及应用场景分析
  • 基于Netty实现高性能IM聊天
  • 基于Netty实现dubbo多协议通信支持
  • Netty无锁化串行设计及高并发处理机制
  • 手写实现多协议Rpc框架
  • Netty、Kafka中的零拷贝技术到底有多牛?

分布式解决方案

微服务专题

漫谈微服务架构

SpringBoot框架

  • Springboot与微服务之间的关系
  • Springboot热部署
  • SpringBoot快速上手应用
  • SpringBoot核心配置详解
  • SpringBoot集成MyBatis Redis ActiveMQ、
  • RabbitMQ Dubbo等
  • SpringBoot计策模板引擎Thymeleaf Freemarker
  • SpringBoot核心注解详解
  • Spring启动器starter原理深入分析
  • Springboot集成Mybatis实现多数据源路由实战
  • Springboot集成Dubbo
  • Springboot集成Redis缓存
  • Springboot集成Swagger2构建Api管理及测试体系
  • Springboot实现多环境配置动态解析

Spring Cloud组件

  • 拜托!面试请不要再问我Spring Cloud底层原理
  • Eureka注册中心
  • Ribbon集成REST实现负债均衡
  • Fegion声明式服务调用
  • Hystrix服务熔断降级方式
  • Zuul实现微服务网关
  • Config分布式统一配置中心
  • Sleuth调用链路跟踪
  • Bus消息总线
  • 基于Hystrix实现接口降级实战
  • Springboot集成Spring Cloud实现统一整合方案

Docker虚拟化

  • Docker的镜像、仓库、容器
  • Docker File 构建LNMP环境部署个人博客WordPress
  • Docker网络组成、路由互联、Openvswitch
  • 基于Swarn构建Docker集群实战
  • Kubernetes简介

性能优化

JVM调优

Tomcat调优

  • 探查Tomcat的运行机制及框架
  • 分析Tomcat线程模型
  • Tomcat体系结构解读
  • Tomcat启动流程分析
  • Tomcat对Http请求的处理流程分析
  • Tomcat核心组件认识
  • Tomcat性能调优
  • Tomcat连接并发参数解读
  • Tomcat server.xml详解

大数据处理

  • Flink架构、原理与部署测试

源码分析专题

常用设计模式

Spring5

Mybatis

  • Mybatis 批量更新遇到的小问题
  • 代码自动生成器:Generateor
  • Mybatis关联查询,嵌套查询
  • 一级缓存、二级缓存使用场景及选择策略
  • 分析Mybatis的动态代理的真正实现

算法

Python语言

Go语言

  • 待定

区块链

  • 待定

机器学习

  • 待定

工程化与工具

Maven

  • 生成可执行jar、理解scope生成最精确的jar
  • 类冲突、包依赖NoClassDefFoundError问题定位及解决
  • 架构师必备之Maven生成Archetype
  • Nexus使用、上传、配置
  • 对比Gradle

Git

  • 什么是Git以及Git工作原理
  • Git常用命令(避坑教学)
  • Git冲突怎么引起的,如何解决
  • 架构师的职责:Git Flow规范团队Git使用规范

Jekins

  • 搭建Jenkins自动部署环境
  • Jenkins集成maven、git实现自动部署
  • test/pre/pro 多环境发布
  • Jenkins多环境配置、权限管理及插件使用

IntelliJ IDEA

随笔杂文

个人博客

我思故我在