要成为一个 Java 架构师得学习哪些知识?

「架构不做什么:有所为有所不为」

  • 不做过于细节的具体决策,除非细节与系统关键质量属性相关。
  • 不涉及非核心功能的实现,除非影响系统核心功能。
  • 不关注功能需求的实现,但关注关键架构需求。

技术点

微服务:

Consul、Gateway、OpenFeign、Ribbon、Stream、Skywalking、Sentinel、Nacos、Seata

分布式

RPC、Netty、Zookeeper、Dubbo

中间插件

RabbitMQ、RocketMQ、Kafka、OpenResty、Kong

码源

JDK、Tomcat、Spring、SpringBoot、MyBatis、Gateway、OpenFeign、Dubbo

数据

Redis、MySQL、Elasticsearch、TiDB、MongoDB、Ceph

云服务

Linux、Docker、 Kubernetes、LVS+Keepalived

性能

线程、锁、 Disruptor、MySQL、JVM

设计

设计模式、系统建模、软件架构设计、代码规范、算法思想、敏捷开发

工具类

Git、Arthas、Ant、Maven、Jenkins、Groovy、Zabbix、定时任务

算法

数组与链表、栈和队列、Hash和递归、树和堆、图、递归、分治、回溯、搜索、贪心、二分查找、动态规划、字典树和并查集、高级搜索、AVL树和红黑树、红黑树高级和位运算、布隆过滤器、LRU

中间件&微服务框架-中级程序员的热门技术
Springcloud:

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|Java微服务
Dubbo:Dubbo快速入门,Java分布式框架dubbo教程
Zookeeper:Zookeeper视频教程,快速入门zookeeper技术
RabbitMQ:RabbitMQ全套教程,rabbitmq消息中间件到实战
RocketMQ:RocketMQ系统精讲,电商分布式消息中间件,硬核揭秘双十一
Docker:Docker容器化技术,从零学会Docker教程
Redis:Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目
MongoDB:MongoDB基础入门到高级进阶,一套搞定mongodb
搜索技术:java中级教程-ELK高级搜索,深度详解ElasticStack技术栈

学习路线参考

阶段一 架构师起步

  • 1、Dubbo开发框架底层原理
  • 2、分布式系统架构体系
  • 3、Netty底层网络通讯
  • 4、Spring Cloud构建微服务体系
  • 5、Alibaba下的微服务解决方案

阶段二 核心能力培养

  • 1、掌握各种各样的大规模数据存储
  • 2、Redis、搜索引擎、NoSQL、NewSQL的深度应用
  • 3、掌握LVS、Keepalived、OpenResty的深度使用
  • 4、具备打造超高并发,大数据量场景下的应对能力

阶段三 深入底层

1、源码剖析

  • JDK源码剖析
  • Tomcat源码剖析
  • Spring源码剖析
  • SpringBoot源码剖析
  • MyBatis源码剖析

2、性能优化

  • 高性能队列Disruptor
  • 并发编程调优
  • JVM调优
  • MySQL数据库调优
  • MySQL千亿级数据生产环境扩容实战

阶段四 云原生

  • 1、掌握Linux的一些高频操作
  • 2、对公有云可提供的可用服务有所了解
  • 3、掌握容器化技术Docker
  • 4、掌握大规模Docker容器的编排
  • 5、掌握云原生、服务网格、ServiceMesh

阶段五 架构师百宝箱

  • 1、熟练掌握Git的⾼级应⽤
  • 2、了解项⽬构建⼯具的历史
  • 3、掌握Maven的⾼级应⽤
  • 4、熟练运⽤Arthas到⽇常开发⼯作中
  • 5、掌握Jenkins持续集成⼯具
  • 6、熟练运⽤Groovy语⾔,提升⽇常场景⼯作效率
  • 7、掌握常⽤第三⽅类库、定时任务⼯具
  • 8、熟练运⽤定时任务⼯具完成定时场景下的软件设计
  • 9、能够重视测试⼯具的使⽤,完成单元测试压测等⽬标

阶段六 架构设计

  • 1、能够在⽇常项⽬中运⽤熟悉的设计模式
  • 2、熟练掌握UML⼯具,能够完成建模操作
  • 3、具备⽇常架构师设计思维,找到解决问题的办法
  • 4、熟悉⽇常代码规范⼯具,了解、参考阿⾥代码规范
  • 5、理解⽇常的软件应⽤级算法
  • 6、掌握敏捷开发思想,能够应⽤与项⽬开发中

我称这里是框架能量补给部分,希望能对你们有一点帮助
110 个常用的组件和框架!!!

以下排序是按照从技术组件到开发框架到代码工具:

1.WEB 容器

Tomcat:https://tomcat.apache.org/

Jetty:https://www.jetty.com/

JBoss:https://www.jboss.org/

Resin:https://caucho.com/products/resin

2.数据库

H2:https://h2database.com/

SQLite:https://www.sqlite.org/

MySQL:https://www.mysql.com/

Oracle:https://www.oracle.com/index.html

SQL Server:https://www.microsoft.com/en-us/sql-server/sql-server-downloads

PostgreSQL:https://www.postgresql.org/

MariaDB:https://mariadb.org/

3.缓存

Redis:https://redis.io/

Memcached:https://memcached.org/

4. 消息队列

Kafka:https://kafka.apache.org/

RocketMQ:https://rocketmq.apache.org/

Pulsar:https://pulsar.apache.org/

RabbitMQ:https://www.rabbitmq.com/

5.负载均衡

LVS:http://www.linuxvirtualserver.org/

NGINX:https://www.nginx.com/

6.分布式存储

Ceph:https://docs.ceph.com/

HDFS:https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

7.数据库集群

MHA:https://github.com/yoshinorim/mha4mysql-manager

8.分布式协调

ZooKeeper:https://zookeeper.apache.org/

9.大数据相关

Storm:https://storm.apache.org/

Flink:https://flink.apache.org/

Spark:https://spark.apache.org/

HBase:https://hbase.apache.org/

Flink:https://flink.apache.org/

ClickHouse:https://clickhouse.com/

Doris:https://doris.apache.org/

9.日志收集与分析

Filebeat:https://www.elastic.co/beats/filebeat

Logstash:https://www.elastic.co/logstash/

Kibana:https://www.elastic.co/kibana

10.搜索

Elasticsearch:https://www.elastic.co/

11.系统监控

SkyWalking;https://skywalking.apache.org/

zipkin:https://zipkin.io/

12.分库分表

ShardingSphere:https://shardingsphere.apache.org/

Mycat2:http://mycatone.top/

13.微服务

Spring Cloud;https://spring.io/projects/spring-cloud

14.RPC 框架

Dubbo;https://github.com/apache/dubbo

gRPC:https://github.com/grpc/grpc-java

15.网络框架

Netty:https://netty.io/

16.MVC 框架

Spring Framework:https://spring.io/projects/spring-framework

Spring Boot:https://spring.io/projects/spring-boot

17.数据层框架

MyBatis:https://github.com/mybatis/mybatis-3

MyBatis-Plus:https://github.com/baomidou/mybatis-plus

Hibernate:http://hibernate.org/orm/

18.数据库连接池

HikariCP:https://github.com/brettwooldridge/HikariCP

Druid:https://github.com/alibaba/druid

19.Redis 客户端

Jedis;https://github.com/xetorthio/jedis

Redisson:https://github.com/redisson/redisson

20.Rest 接口设计与开发

Swagger:https://swagger.io/

21.数据参数校验

Hibernate Validator:https://hibernate.org/validator/

22.安全相关

Shiro:https://shiro.apache.org/

Bouncy Castle:https://www.bouncycastle.org/java.html

jjwt:https://github.com/jwtk/jjwt

23.Reactive 编程

Akka:https://akka.io/

RxJava:https://github.com/ReactiveX/RxJava

vert.x:https://vertx.io/

24.单元测试

JUnit:https://junit.org/junit5/

25.测试辅助

JMockit:http://jmockit.github.io/

Mockito:https://github.com/mockito/mockito

JMeter:http://jmeter.apache.org/

Selenium:https://www.selenium.dev/

26.日志记录

Log4j2:https://logging.apache.org/log4j/

Logback:http://logback.qos.ch/

SLF4J;http://www.slf4j.org/

27.代码质量检查

Checkstyle;https://github.com/checkstyle/checkstyle

Spotbugs;https://github.com/spotbugs/spotbugs

28.代码生成

Lombok:https://projectlombok.org/

29.领域语言定制

ANTLR:https://www.antlr.org/

30.配置文件解析

config;https://github.com/lightbend/config

31.序列化格式

Avro:https://avro.apache.org/

Thrift:https://thrift.apache.org/

Protobuf:https://github.com/protocolbuffers/protobuf

32.模板引擎

Freemarker:https://freemarker.apache.org/

Thymeleaf:https://www.thymeleaf.org/

33.Office 文档处理

POI

https://poi.apache.org/

34.PDF 处理

iText:https://itextpdf.com/en

Apache PDFBox:https://pdfbox.apache.org/

35.高性能队列

Disruptor:https://lmax-exchange.github.io/disruptor/

36.HTTP 客户端

Async Http Client:https://github.com/AsyncHttpClient/async-http-client

Feign:https://github.com/OpenFeign/feign

Retrofit:https://square.github.io/retrofit/

37.二维码解析

ZXing:https://github.com/zxing/zxing

38.定时任务调度

Quartz:https://github.com/quartz-scheduler/quartz

39.JSON 解析

Gson:https://github.com/google/gson

Jackson:https://github.com/FasterXML/jackson

fastjson:https://github.com/alibaba/fastjson

40.分布式事务

Seata:https://github.com/seata/seata

41.属性映射

MapStruct:https://github.com/mapstruct/mapstruct

42.本地缓存

Ehcache:http://www.ehcache.org/

Caffeine:https://github.com/ben-manes/caffeine

43.系统排错与调优

JMH:http://openjdk.java.net/projects/code-tools/jmh/

Arthas:https://github.com/alibaba/arthas

44.命令行参数解析

JCommander:http://jcommander.org/

45.计算机视觉

JavaCV:https://github.com/bytedeco/javacv

45.工具集合

Guava:https://github.com/google/guava

Hutool:https://hutool.cn/

46.构建工具

Maven:https://maven.apache.org/

Gradle:https://gradle.org/

Bazel:https://bazel.build/

47.本地系统开发

JNA:https://github.com/java-native-access/jna

48.JVM

Adopt Open JDK:https://adoptopenjdk.net/

Graal:https://github.com/oracle/graal

Open JDK:https://openjdk.java.net/

49.多版本 Java 支持

jenv:https://github.com/jenv/jenv

50.爬虫相关

Nutch:https://nutch.apache.org/

Crawler4j:https://github.com/yasserg/crawler4j

jsoup:https://jsoup.org/

webmagic:https://github.com/code4craft/w

你可能感兴趣的:(编程,自学,java,java,学习,开发语言)