前后端学习路线
前端
- HTML:文本标记语言,是一种标识性的语言
- CSS:使网页更加丰富多彩灿烂的利器
- JS:使网页动起来的根本,加强了网页和用户之间的交互
- Ajax:异步提交,增强了用户使用网页的良好交互体验
- Http协议、Servlet、request、response、cookie、seesion
- JSON:比XML更小、更快、更易解析的数据传输工具
- Vue:用于构建用户界面的渐进式JS框架
- Node.js:一个基于Chrome V8引擎的JS运行环境
后端
网关层
- 微服务、分布式、云原生
- 负载均衡
- LVS:Linux虚拟服务器
- DNS
- CDN:内容分发网络
- zk:分布式服务框架,可对中间件进行管理调度
- Nginx:高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务
服务层
- HTTP、HTTPS、TCP协议
- 三次握手、四次挥手、中间人攻击
- JAVA基础:
- 面向对象(包括类、对象、方法、继承、封装、抽象、多态、消息解析等)
- 常见API
- 数据结构
- 集合框架
- 设计模式(包括创建型、结构型、行为型)
- 多线程和并发
- I/O流
- Stream
- 网络编程
- 服务器
- Linux
- 常用命令
- Shell
- 数据结构与算法
- 从二叉搜索树到B+树
- 经典问题之字符串
- 经典问题之TOPK
- 红黑树、二叉树、hash等
- 贪心、分治、动态规划
- 队列、栈、表
- 必会框架
- Spring:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更加简单,主要用于管理对象
- Spring MVC:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更加简单,主要用于程序和数据库之间的交互
- MyBatis:本是apache的一个开源项目iBatis,2010年这个项目由 apache software foundation 迁移到了google code,并改名为MyBatis
- Spring Boot:其目的是用来简化新Spring应用的初始构建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置
- Netty:高性能NIO框架
- 中间件
- RPC远程调用
- Dubbo、SpringCloud
- 消息队列
- RocketMQ、Kafka、RabbitMQ、ActiveMQ
- RPC远程调用
- 分布式事务
- 两段式
- 三段式
- TCC
- XA
- 阿里云的全局事务服务GTS
- RocketMQ自带分布式事务解决方案
- 常用工具
- IDEA
- JVM问题排查工具-JMC
- 线上调试神器-btrace
- Git原理与工作流:是一个开源的分布式版本管理控制系统、可以有效、高速地处理从小到非常大的项目版本管理
- Linux常用分析工具
- Maven:项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的项目管理工具软件
- Gradle:是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置
- 容器化
- Docker
- Kubernetes(k8s)
数据层
- 事务隔离级别
- 索引
- SQL
- 主从同步
- 读写分离
- 分库分表-TDDL、Sharding-JDBC、DRDS
- Redis
- 持久化机制:RDB、AOF
- 缓存雪崩
- 缓存击穿
- 缓存穿透
- 集群模式
- 哨兵
- 主从
- 内存淘汰机制
- 位图
- HyperLogLog
- 布隆过滤器(Bloom Filter)
实时/离线数仓/大数据
- 离线分析:ODPS,是阿里云基于自有的云计算技术研发一套开放数据处理服务
- Hadoop(HDFS):是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
- Hive:基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制
- HBase:是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文”Bigtable:一个结构化数据的分布式存储系统”。
- Cassandra:是一个高可靠的大规模分布式存储系统。支持分布式的结构化key -value存储,以高可用性为主要目标。适合写多的场景,适合做一些简单查询, 不适合用来做数据分析统计。
- Flink:Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。
- Spark:专为大规模数据处理而设计的快速通用的计算引擎
算法/机器学习/人工智能
- 机器学习、深度学习、人工智能、自动驾驶等
搜索引擎
- ElasticSearch: 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
- Canal:是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
- Kibana: 是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
- Lucene: 是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)
- Logstash: 是一个具有实时管道功能的开源数据收集引擎,Logstash可以动态地将来自不同数据源的数据统一起来,并将数据规范化为你选择的目的地,清理和大众化你的所有数据,用于各种高级下游分析和可视化用例。
- Solr: 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LXY's blog!