WATERDROP WATERDROP
  • JavaSE
  • JavaEE
  • 软件
  • 工具
  • 框架
  • 中间件
编程
设计
DevOps
数据结构和算法
  • 数据库综合
  • 数据库中间件
  • 关系型数据库

    • 综合
    • Mysql
    • 其他
  • 文档数据库

    • MongoDB
  • KV数据库

    • Redis
  • 搜索引擎数据库

    • Elasticsearch
    • Elastic技术栈
网络
  • 分布式理论
  • 分布式协同
  • 分布式调度
  • 分布式通信
  • 分布式存储
工作
笔记
GitHub (opens new window)
  • JavaSE
  • JavaEE
  • 软件
  • 工具
  • 框架
  • 中间件
编程
设计
DevOps
数据结构和算法
  • 数据库综合
  • 数据库中间件
  • 关系型数据库

    • 综合
    • Mysql
    • 其他
  • 文档数据库

    • MongoDB
  • KV数据库

    • Redis
  • 搜索引擎数据库

    • Elasticsearch
    • Elastic技术栈
网络
  • 分布式理论
  • 分布式协同
  • 分布式调度
  • 分布式通信
  • 分布式存储
工作
笔记
GitHub (opens new window)

WATERDROP

💧 waterdrop 是个人的技术文档归档仓库。

star fork commit code style

WATERDROP

💧 waterdrop 是个人的技术文档归档仓库。

  • 🔁 项目同步维护:Github (opens new window) | Gitee (opens new window)
  • 📖 电子书阅读:Github Pages (opens new window) | Gitee Pages (opens new window)

# Java

# JavaSE

📚 javacore (opens new window) 是一个 Java 核心技术教程。内容包含:Java 基础特性、Java 高级特性、Java 并发、JVM、Java IO 等。

# JavaEE

# JavaWeb

  • JavaWeb 面经
  • JavaWeb 之 Servlet 指南
  • JavaWeb 之 Jsp 指南
  • JavaWeb 之 Filter 和 Listener
  • JavaWeb 之 Cookie 和 Session

# Java 服务器

Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。

Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。

  • Tomcat 快速入门
  • Tomcat 连接器
  • Tomcat 容器
  • Tomcat 优化
  • Tomcat 和 Jetty
  • Jetty

# Java 软件

# Java 构建

Java 项目需要通过 构建工具 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。

  • 目前最主流的构建工具是 Maven,它的功能非常强大。
  • Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
  • Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。
  • Maven 📚
    • Maven 快速入门
    • Maven 教程之 pom.xml 详解
    • Maven 教程之 settings.xml 详解
    • Maven 实战问题和最佳实践
    • Maven 教程之发布 jar 到私服或中央仓库
    • Maven 插件之代码检查
  • Ant 简易教程

# Java IDE

自从有了 IDE,写代码从此就告别了刀耕火种的蛮荒时代。

  • Eclipse 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
  • 曾经抗拒从转 Intellij Idea ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
  • 你可以在 vscode 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。
  • Intellij Idea
  • Eclipse
  • vscode

# Java 监控诊断

监控/诊断 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。

  • 监控工具对比
  • CAT
  • Zipkin
  • SkyWalking
  • Arthas

# Java 工具

# Java IO

  • JSON 序列化 - fastjson (opens new window)、Jackson (opens new window)、Gson (opens new window)
  • 二进制序列化 - Protobuf (opens new window)、Thrift (opens new window)、Hessian、Kryo (opens new window)、FST (opens new window)

# JavaBean 工具

  • Lombok
  • Dozer

# Java 模板引擎

  • Freemark
  • Velocity
  • Thymeleaf

# Java 测试工具

  • Junit
  • Mockito
  • Jmeter
  • JMH

# 其他

  • Java 日志
  • Java 工具包
  • Reflections
  • JavaMail
  • Jsoup
  • Thumbnailator
  • Zxing

# Java 框架

# Spring Boot

# Spring Boot 基础篇
  • SpringBoot 知识图谱
  • SpringBoot 基本原理
# Spring Boot 基础篇
  • SpringBoot 教程之快速入门
  • SpringBoot 之属性加载
  • SpringBoot 之 Profile
# Spring Boot 数据篇
  • SpringBoot 之 JDBC
  • SpringBoot 之 Mybatis
  • SpringBoot 之 Elasticsearch
  • SpringBoot 之 MongoDB
# Spring Boot IO 篇
  • SpringBoot 之异步请求
  • SpringBoot 之 Json
  • SpringBoot 之邮件

# ORM

  • Mybatis 快速入门
  • Mybatis 原理

# 安全

Java 领域比较流行的安全框架就是 shiro 和 spring-security。

shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。

spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。

  • Shiro
  • SpringSecurity

# IO

  • Shiro

# Java 中间件

# 缓存

缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。

如果想深入学习缓存,建议先了解一下 缓存基本原理 (opens new window),有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。

  • 缓存面试题
  • Java 缓存中间件
  • Memcached 快速入门
  • Ehcache 快速入门
  • Java 进程内缓存
  • Http 缓存

# 流量控制

  • Hystrix

# 计算机科学

# 数据结构和算法

  • 综合
    • 数据结构和算法指南
    • 复杂度分析 - 关键词:时间复杂度、空间复杂度、大 O 表示法、复杂度量级
  • 线性表
    • 数组和链表 - 关键词:线性表、一维数组、多维数组、随机访问、单链表、双链表、循环链表
    • 栈和队列 - 关键词:先进后出、后进先出、循环队列
    • 线性表的查找
    • 线性表的排序
  • 树
    • 树和二叉树
    • 堆
    • B+树
    • LSM 树
    • 字典树
    • 红黑树
  • 哈希表 - 关键词:哈希函数、装载因子、哈希冲突、开放寻址法、拉链法
  • 跳表 - 关键词:多级索引
  • 图

# 数据库

# 数据库综合

  • Nosql 技术选型
  • 数据结构与数据库索引

# 数据库中间件

  • ShardingSphere 简介
  • ShardingSphere Jdbc
  • 版本管理中间件 Flyway

# 关系型数据库

关系型数据库 整理主流关系型数据库知识点。

# 关系型数据库综合
  • 关系型数据库面试总结 💯
  • SQL 语法基础特性
  • SQL 语法高级特性
  • 扩展 SQL
  • SQL Cheat Sheet
# Mysql
  • Mysql 应用指南 ⚡
  • Mysql 工作流 - 关键词:连接、缓存、语法分析、优化、执行引擎、redo log、bin log、两阶段提交
  • Mysql 事务 - 关键词:ACID、AUTOCOMMIT、事务隔离级别、死锁、分布式事务
  • Mysql 锁 - 关键词:乐观锁、表级锁、行级锁、意向锁、MVCC、Next-key 锁
  • Mysql 索引 - 关键词:Hash、B 树、聚簇索引、回表
  • Mysql 性能优化
  • Mysql 运维 🔨
  • Mysql 配置 🔨
  • Mysql 问题
# 其他
  • PostgreSQL 应用指南
  • H2 应用指南
  • SqLite 应用指南

# 文档数据库

# MongoDB

MongoDB 是一个基于文档的分布式数据库,由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品。它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

  • MongoDB 应用指南
  • MongoDB 的 CRUD 操作
  • MongoDB 聚合操作
  • MongoDB 事务
  • MongoDB 建模
  • MongoDB 建模示例
  • MongoDB 索引
  • MongoDB 复制
  • MongoDB 分片
  • MongoDB 运维

# KV 数据库

# Redis
  • Redis 面试总结 💯
  • Redis 应用指南 ⚡ - 关键词:内存淘汰、事件、事务、管道、发布与订阅
  • Redis 数据类型和应用 - 关键词:STRING、HASH、LIST、SET、ZSET、BitMap、HyperLogLog、Geo
  • Redis 持久化 - 关键词:RDB、AOF、SAVE、BGSAVE、appendfsync
  • Redis 复制 - 关键词:SLAVEOF、SYNC、PSYNC、REPLCONF ACK
  • Redis 哨兵 - 关键词:Sentinel、PING、INFO、Raft
  • Redis 集群 - 关键词:CLUSTER MEET、Hash slot、MOVED、ASK、SLAVEOF no one、redis-trib
  • Redis 实战 - 关键词:缓存、分布式锁、布隆过滤器
  • Redis 运维 🔨 - 关键词:安装、命令、集群、客户端

# 搜索引擎数据库

# Elasticsearch

Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。

  • Elasticsearch 面试总结 💯
  • Elasticsearch 快速入门
  • Elasticsearch 简介
  • Elasticsearch 索引
  • Elasticsearch 查询
  • Elasticsearch 高亮
  • Elasticsearch 排序
  • Elasticsearch 聚合
  • Elasticsearch 分析器
  • Elasticsearch 性能优化
  • Elasticsearch Rest API
  • ElasticSearch Java API 之 High Level REST Client
  • Elasticsearch 集群和分片
  • Elasticsearch 运维
# Elastic
  • Elastic 快速入门
  • Elastic 技术栈之 Filebeat
  • Filebeat 运维
  • Elastic 技术栈之 Kibana
  • Kibana 运维
  • Elastic 技术栈之 Logstash
  • Logstash 运维

# 网络

如果你是做通信领域的开发,或者是 Web 应用的开发,那就或多或少需要了解一些计算机网络的知识 。

# 网络综合

理解计算机网络,首先需要从宏观层面了解计算机网络通信的分层结构。最有代表性的是 OSI 七层结构模型,但现实中更流行的是五层结构模型。

了解网络分层结构,需要了解每个网络层级在网络通信中的定位,以及这个层级主要的通信设备、通信协议。

  • 计算机网络面试总结
  • 计算机网络指南 - 关键词:核心概念、拓扑结构、作用范围、性能指标、体系结构
  • 网络分层
    • 计算机网络之物理层 - 关键词:调制、解调、数字信号、模拟信号、通信媒介、信道复用
    • 计算机网络之数据链路层 - 关键词:点对点信道、广播信道、PPP、CSMA/CD、局域网、以太网、MAC、适配器、集线器、网桥、交换机
    • 计算机网络之网络层 - 关键词:IP、ICMP、ARP、路由
    • 计算机网络之传输层 - 关键词:UDP、TCP、滑动窗口、拥塞控制、三次握手
    • 计算机网络之应用层 - 关键词:HTTP、DNS、FTP、TELNET、DHCP

# 网络协议

  • 超文本传输协议 HTTP
  • 域名系统协议 DNS
  • 传输控制协议 TCP
  • 用户数据报协议 UDP
  • ICMP

# 网络技术

  • WebSocket
  • CDN
  • VPN

# 分布式

# 分布式综合

  • 分布式面试总结

# 分布式理论

  • 分布式理论 - 关键词:拜占庭将军、CAP、BASE、错误的分布式假设
  • 分布式算法 Paxos - 关键词:共识性算法
  • 分布式算法 Raft - 关键词:共识性算法
  • 分布式算法 Gossip - 关键词:数据传播

# 分布式协同

  • 分布式协同综合
  • 集群
    • 分布式复制
    • 分区
  • 选主
    • 分布式事务 - 关键词:2PC、3PC、TCC、本地消息表、MQ 消息、SAGA
    • 分布式锁 - 关键词:数据库、Redis、ZooKeeper、互斥、可重入、死锁、容错、自旋尝试
  • ZooKeeper
    • ZooKeeper 原理
    • ZooKeeper Java Api
    • ZooKeeper 命令
    • ZooKeeper 运维
    • ZooKeeper Acl

# 分布式调度

  • 服务路由 - 关键词:路由、条件路由、脚本路由、标签路由
  • 负载均衡 - 关键词:轮询、随机、最少连接、源地址哈希、一致性哈希、虚拟 hash 槽
  • 流量控制 - 关键词:限流、熔断、降级、计数器法、时间窗口法、令牌桶法、漏桶法
  • 分布式会话 - 关键词:粘性 Session、Session 复制共享、基于缓存的 session 共享
  • 分布式 ID - 关键词:UUID、自增序列、雪花算法、Leaf

# 分布式高可用

  • 服务容错

# 分布式通信

# RPC

# RPC 综合
  • RPC 基础
  • RPC 进阶
  • RPC 高级
  • 服务注册和发现

# MQ

# MQ 综合
  • 消息队列面试
  • 消息队列基本原理
# Kafka
  • Kafka 快速入门
  • Kafka 生产者
  • Kafka 消费者
  • Kafka 集群
  • Kafka 可靠传输
  • Kafka 存储
  • Kafka 流式处理
  • Kafka 运维
# RocketMQ
  • RocketMQ 快速入门
  • RocketMQ 基本原理
  • RocketMQ Faq
# 其他 MQ
  • ActiveMQ

# 分布式存储

  • 数据缓存 - 关键词:进程内缓存、分布式缓存、缓存雪崩、缓存穿透、缓存击穿、缓存更新、缓存预热、缓存降级
  • 读写分离
  • 分库分表 - 关键词:分片、路由、迁移、扩容、双写、聚合

# 编程

# 编程范式

  • 如何学习编程语言

# 编程语言

  • python
  • shell
  • scala

# 设计

# 架构

# 综合

  • 如何设计系统
  • 系统架构面试总结
  • 系统架构概述
  • 系统高性能架构
  • 系统高可用架构
  • 系统伸缩性架构
  • 系统扩展性架构
  • 系统安全性架构
  • 大型系统核心技术
  • 系统测试架构

# 微服务

  • 微服务简介
  • 微服务基本原理

# 安全

  • 认证和授权
  • OAuth2.0

# 设计模式

面向对象原则

# 创建型模式

创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。

  • 简单工厂模式 (Simple Factory)
  • 工厂方法模式 (Factory Method)
  • 抽象工厂模式 (Abstract Factory)
  • 建造者模式 (Builder)
  • 原型模式 (Prototype)
  • 单例模式 (Singleton)

# 结构型模式

结构型模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。

  • 适配器模式 (Adapter)
  • 桥接模式 (Bridge)
  • 组合模式 (Composite)
  • 装饰模式 (Decorator)
  • 外观模式 (Facade)
  • 享元模式 (Flyweight)
  • 代理模式 (Proxy)

# 行为型模式

行为模式负责对象间的高效沟通和职责委派。

  • 模板方法模式 (Template Method)
  • 命令模式 (Command)
  • 迭代器模式 (Iterator)
  • 观察者模式 (Observer)
  • 解释器模式 (Interpreter)
  • 中介者模式 (Mediator)
  • 职责链模式 (Chain of Responsibility)
  • 备忘录模式 (Memento)
  • 策略模式 (Strategy)
  • 访问者模式 (Visitor)
  • 状态模式 (State)

# 重构

  • 代码的坏味道和重构
  • 代码坏味道之代码臃肿
  • 代码坏味道之滥用面向对象
  • 代码坏味道之变革的障碍
  • 代码坏味道之非必要的
  • 代码坏味道之耦合

# UML

  • UML 快速入门
  • UML 结构建模图
  • UML 行为建模图

# DevOps

# CI

# CD

# 监控

  • 监控体系
  • 链路监控

# 工具

  • Git
    • 如何优雅的玩转 Git
    • Git 帮助手册
  • 其他
    • 正则表达式极简教程

# 工作

# 方法论

  • 效率提升方法论
  • 话术

# 规范

  • 技术文档规范
  • 目录管理规范
  • 代码工程规范

# 工具

  • Markdown 极简教程

# 🚪 传送

◾ 💧 钝悟的 IT 知识图谱 (opens new window) ◾ 🎯 钝悟的博客 (opens new window) ◾

文章分类
笔记 20 数据库 80 关系型数据库 21 综合 19 分布式 64 分布式通信 30 软件工程 3 MQ 17 RocketMQ 4 工作 8 更多 ...
热门标签
数据库 Mysql 关系型数据库 SQL 架构 分布式 分布式通信 MQ RocketMQ 软件工程 Java 中间件 沟通 话术 工作 职场 Kafka 理论 设计 微服务 RPC 分布式调度 分布式应用 框架 Spring SpringBoot 协同 复制 分布式协同 DevOps 更多...
Theme by Vdoing | Copyright © 2019-2022 钝悟(dunwu) | CC-BY-SA-4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×