Java / 架构 方向学习路径

P.S.基本的内容可以参考C++方向的基础内容。

1.Java 方向额外需要注意以下:

1.1 概念方面:

1.1.1 架构设计:

架构设计是在规划整个后台系统的运行模式,数据流、时序关系、异常处理等等。

主要是需要关注服务-客户端 (Client-Server) 模型,分布式设计,

高可用 High Availability,容灾设计Fault tolerant,

监控 Monitoring,日志收集 Tracing and Logging,

数据链路等等。

编程理论:

Meta-programming,Aspect-oriented programming, Lambda Expression

Java 语言相关的 Garbage Collection, 虚拟机的原理,JIT,AOT原理

移动开发(安卓)相关的系统结构,应用层次,

Dalvik虚拟机,https://source.android.com/devices/tech/dalvik/dalvik-bytecode

Android 四层模型 https://developer.android.google.cn/guide/platform

多线程应用,并行化设计:线程、进程同步问题,异步编程的理论。


实践领域:

AOP 与语言层面:Meta-programming

Spring Framework - Spring Boot, Spring 全家桶


网络

传统:Tomcat 

新型:NIO, Netty, 以及 Vert.x


构建系统:

Maven (古老流行), 

Gradle(新兴)


数据管理理念/ORM

Mybatis,Hibernate,Spring JPA (文章、Github,实践为主)

推荐大家看一下这些内容:

https://university.pingcap.com/courses/PCTP

Stanford: Data Intensive Systems: http://web.stanford.edu/class/cs245/


分布式系统

Paxos(新的), Raft(新的), Quorum(旧的),ZAB (PPT,MOOC为主)

Zookeeper, Kafka  (基于Zab协议)

Stanford CS244b, Distributed Systems: http://www.scs.stanford.edu/20sp-cs244b/

PPT: http://www.scs.stanford.edu/20sp-cs244b/sched/


系统架构方向:

放一张 Dubbo 官网的图,来简单看看这个领域包含的生态组件。

注册服务(核心概念,优缺点等):Nacos , ETCD,

断路器(核心概念,优缺点等):Hystrix, Sentinel

API 网关(核心概念,优缺点等):Dubbo, Zuul

跟踪(Tracing,了解优缺点,使用方式) : Jaeger / Opentracing, Zipkin

监控:(了解使用方式即可) Prometheus, Grafana, AlertManager

日志收集(使用方式即可):Elastic Search, 

事务(核心概念):Seata

传输(使用方式,优缺点):Netty, Vert.x

序列化(使用方式,优缺点):Fastjson, Protobuf, Cbor, ...



大数据领域(技术有些在被淘汰的边缘)

Hadoop,Spark,MapReduce (文档,实践,文章结合)


存内数据库,计算

Redis,

Geode(Gemfire),(实践,文档为主)

Ignite, 存内计算



数据库

(高性能数据库)可以参见C++部分

传统:Hive, HBase,

新的:Kylin: OLAP,华人做的;Elastic Search, Lucene: OLAP;Impala DB: SQL优化器

你可能感兴趣的:(Java / 架构 方向学习路径)