跳至主要內容

钝悟的博客

大道至简,知易行难

dunwu.github.io
个人的技术文档归档
链接名称
链接详细描述
书籍名称
书籍详细描述
文章名称
文章详细描述
伙伴名称
伙伴详细介绍
自定义项目
自定义项目
自定义详细介绍
Docker 面试

Docker 面试

Docker 简介

【简单】什么是 Docker?为什么需要 Docker?

Docker 是一个容器化平台,用于将应用及其所有依赖打包成一个标准化、轻量级、可移植的单元(容器),从而实现 “一次构建,处处运行”

核心价值

  • 环境一致性:彻底解决“在我电脑上能跑”的问题,保证开发、测试、生产环境绝对一致。
  • 隔离性:每个容器拥有独立的文件系统、网络和进程空间,应用间互不干扰。
  • 轻量高效:与传统虚拟机相比,容器直接共享主机内核,启动更快(秒级)、资源占用更少(MB 级)。
  • DevOps 基石:极大简化了持续集成/持续部署 (CI/CD) 流程,是实现微服务架构的理想载体。

钝悟...大约 19 分钟DevOps工具DockerDevOpsDocker面试
Kubernetes 快速入门

Kubernetes 快速入门

Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。

K8S 简介

K8S 主控组件(Master) 包含三个进程,都运行在集群中的某个节上,通常这个节点被称为 master 节点。这些进程包括:kube-apiserverkube-controller-managerkube-scheduler


钝悟...大约 5 分钟DevOps工具KubernetesDevOpsDockerKubernetes
Kubernetes 面试

Kubernetes 面试

【中等】什么是 Kubernetes,并描述其主要组件及其作用。

Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用

它解决了管理大量微服务时的核心难题:

  • 自动化运维:实现自动部署、扩缩容、故障恢复(自我修复)、滚动更新。
  • 高可用与弹性伸缩:保证应用持续在线,并能轻松应对流量波动。
  • 资源优化:高效调度容器,充分利用基础设施资源。

钝悟...大约 21 分钟DevOps工具KubernetesDevOpsDockerKubernetes面试
Nginx 面试

Nginx 面试

【中等】如何限制上传文件大小?

显示错误信息:413 Request Entity Too Large

意思是请求的内容过大,浏览器不能正确显示。常见的情况是发送 POST 请求来上传大文件。

解决方法

  • 可以在 http 模块中设置:client_max_body_size 20m;
  • 可以在 server 模块中设置:client_max_body_size 20m;
  • 可以在 location 模块中设置:client_max_body_size 20m;

钝悟...大约 7 分钟DevOps工具NginxDevOpsNginx面试
设计模式面试

设计模式面试

综合

【简单】什么是设计模式?为什么需要设计模式?

设计模式是软件设计中常见问题的典型解决方案。

设计模式是针对软件设计中常见问题的、可重用解决方案模板最佳实践

模式是针对软件设计中常见问题的解决方案工具箱, 它们定义了一种让你的团队能更高效沟通的通用语言。

【中等】设计模式可以分为哪几类?一共有多少种主流的设计模式?


钝悟...大约 12 分钟设计设计模式设计设计模式面试
Netty 面试

Netty 面试

Netty 简介

【中等】Netty 有哪些应用场景?🌟

Netty 是构建高性能、高可扩展性网络应用的基石,尤其适用于需要处理大量并发连接高速数据传输的场景。

Netty 的核心应用场景如下:

应用领域 核心需求 代表技术
互联网分布式 高并发、高可用、服务治理 Dubbo、gRPC、RocketMQ、API Gateway
大数据 高吞吐、跨节点通信 Hadoop、Spark、Flink、Elasticsearch
游戏与 IoT 长连接、低延迟、自定义协议 游戏后端、物联网平台
协议实现 灵活编解码、高性能网络 IO WebSocket, HTTP, 自定义 TCP/UDP 协议

钝悟...大约 5 分钟Java框架IOJava框架IONetty面试
SpringBoot 面试

SpringBoot 面试

SpringBoot 简介

【简单】什么是 SpringBoot?

Spring Boot 是一个基于 Spring 框架的“开箱即用”的脚手架框架,它基于约定优于配置的原则,极大地简化了 Spring 应用的搭建和开发过程。

SpringBoot 的核心特性:

  • 自动配置:根据项目依赖自动推断并配置所需的 Bean(如引入 Web 依赖则自动配置 Tomcat + Spring MVC)。
  • starter 依赖:将功能相关的依赖打包成一个整体(如 spring-boot-starter-web),解决版本兼容问题。
  • 内嵌服务器:内嵌服务器 Tomcat/Jetty,无需外部容器,打包成可执行 JAR 后一键运行 (java -jar)。
  • 监控:提供 Actuator 模块,轻松监控应用健康、性能等指标(通过 /actuator/health 等端点)。

钝悟...大约 8 分钟Java框架SpringJava框架SpringSpringBoot面试
2
3
4
5
...
62

starforkbuildcode style

dunwu.github.io

💧 dunwu.github.ioopen in new window 是个人的技术文档归档仓库。

Java

JavaCore

Java 基础特性

Java 高级特性

  • Java 正则 - 关键词:Pattern、Matcher、捕获与非捕获、反向引用、零宽断言、贪婪与懒惰、元字符、DFA、NFA
  • Java 编码和加密 - 关键词:Base64、消息摘要、数字签名、对称加密、非对称加密、MD5、SHA、HMAC、AES、DES、DESede、RSA
  • Java 国际化 - 关键词:Locale、ResourceBundle、NumberFormat、DateFormat、MessageFormat
  • Java JDK8 - 关键词:Stream、lambda、Optional、@FunctionalInterface
  • Java SPI - 关键词:SPI、ClassLoader
  • JavaAgent

Java 容器

Java IO

Java 并发

Java 虚拟机

JavaEE

JavaWeb

Java 服务器

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

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

Java 软件

Java 构建

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

  • 目前最主流的构建工具是 Maven,它的功能非常强大。
  • Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
  • Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。

Java IDE

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

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

Java 监控诊断

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

Java 工具

Java IO

JavaBean 工具

Java 模板引擎

Java 测试工具

其他

Java 框架

Spring

综合
核心
数据
Web
IO
集成
其他

ORM

安全

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

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

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

IO

Java 中间件

缓存

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

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

流量控制

数据结构和算法

数据库

数据库综合

数据库中间件

关系型数据库

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

MySQL

文档数据库

MongoDB

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

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

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

KV 数据库

Redis

Memcached

列式数据库

HBase

搜索引擎数据库

Elasticsearch

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

Elastic

网络

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

网络综合

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

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

网络协议

网络技术

分布式

分布式综合

分布式协同

分布式调度

分布式通信

RPC

MQ

Kafka
RocketMQ

分布式存储

编程

编程范式

编程语言

设计

架构

综合

微服务

  • 微服务简介 - 关键词:定义演进利弊如何拆分容量规划核心组件
  • 微服务之注册和发现 - 关键词:服务定义注册中心元数据健康检查服务订阅一致性
  • 微服务之服务调用 - 关键词:RPC通信协议传输方式序列化
  • 微服务基本原理 - 关键词:微服务序列化动态代理通信服务注册发现健康检查路由负载均衡容错处理优雅上线下线限流熔断业务分组

安全

设计模式

面向对象原则

创建型模式

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

结构型模式

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

行为型模式

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

重构

UML

DevOps

CI

CD

监控

工具

工作

方法论

规范

工具

🚪 传送

◾ 💧 钝悟的 IT 知识图谱open in new window