前置阅读:Nginx-05 location 匹配与 rewrite 反向代理是 Nginx 最主要的用途。这一篇覆盖从基本配置到失败重试、长连接复用、灰度发布的完整体系。 1. 反向代理基础
前置阅读:Nginx-06 反向代理与负载均衡 1. 为什么要动静分离 一个典型的页面请求会拉取 1 个 HTML + 几十个静态资源(JS/CSS/图片/字体)。如
前置阅读:Nginx-07 动静分离与静态资源优化、网络-13 HTTP 缓存 上一篇讲的是浏览器端的缓存(让客户端别来请求)。这一篇讲Nginx 自己的缓
前置阅读:Nginx-08 缓存机制 Nginx 在最前面,是最合适做流量管控的位置。这一篇讲清限流的原理(尤其是 burst/nodelay 那三个容易搞混的模式)和常见攻击的防护
前置阅读:Nginx-09 限流限连与安全防护、网络-16 HTTPS 与 TLS、网络-17 TLS 1.3 TLS 协议本身在网络系列讲过,这一篇专注于Nginx 侧的配置和
前置阅读:Nginx-10 HTTPS 与 TLS 配置 Nginx 的日志是排查线上问题的第一手资料。这一篇把日志配置、分析方法和监控体系讲全。 1. access_log 1.1 语法 access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log
前置阅读:Nginx-11 日志与监控、网络-10 TCP 实战调优 1. 调优方法论 先说最重要的一条:不要盲目抄参数。 网上大量的「Nginx 性能优化 20 条」
前置阅读:Nginx-12 性能调优实战 前面 12 篇讲的都是「怎么配」,这一篇把它们串起来,做几个能跑起来的完整案例。 1. 案例一:Go 多实例负载均衡
前置阅读:Nginx-13 实战案例(Go 服务 + Docker) 本篇是整个系列的收尾。前 13 篇每篇末尾都有对应主题的面试题,这里做跨主题的汇总:先
本文是 Protobuf 系列的第 1 篇。 大多数教程从「怎么写 .proto」讲起,本系列反过来,先讲字节。原因很简单:不懂编码格式的人,只能把「字段号不能改」「
本文是 Protobuf 系列的第 2 篇,作为 proto3 的语法参考使用。 上一篇从 wire format 开始讲了二进制编码,本篇讲怎么写 .proto。遇到「为什么这条规则是这样」时,答案基
本文是 Protobuf 系列的第 3 篇。 语法看完就能写 .proto 了,但真正在生产上写出 bug 的地方,八成集中在这一章:「这个字段到底是没传,还是传了个 0?」 1. 从一个真实的
本文是 Protobuf 系列的第 4 篇,也是我认为最值得读的一篇。 语法写错了编译器会拦你;但 schema 改错了,编译器和测试都不会报警——它会在半年后的某个滚动发布窗口
本文是 Protobuf 系列的第 5 篇。 前面四篇讲的是「Protobuf 本身」,这一篇讲生态里那些你不该自己造的轮子:官方预定义的 Well-Known Types,以及 protobuf 与 JSON 之间
本文是 Protobuf 系列的第 6 篇。 前面讲的都是 Protobuf 本身,这一篇讲怎么在 Go 项目里把它用好:工具链怎么配、生成的 API 有哪些坑、性能怎么调、动态处理怎么写。 1. 工具
本文是 Protobuf 系列的第 7 篇,收尾篇。 内容分两半:前半是 proto2 与 proto3 的差异——只在维护老项目、或需要读懂 descriptor.proto 这类 proto2 文件时需要;后半是 Protobuf Editions,Go
1. Kafka 简介 Kafka 是由 LinkedIn 开发并开源的分布式流处理平台,现归属 Apache 基金会。它的设计目标是超高吞吐、持久化存储和水平扩展,既可作为消息队列,也可用于流式计
1. RabbitMQ 简介 RabbitMQ 是基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)规范实现的开源消息中间件,由 Erlang 语言编写,天生具备高并发和高
1. MySQL 简介与版本演进 MySQL 是世界上最流行的开源关系型数据库,由瑞典 MySQL AB 公司开发,后被 Sun 收购,最终归入 Oracle 旗下。社区维护的分支 MariaDB 由 MySQL 创始人 Monty Widenius 主导,兼
1. 整体架构概览 ┌──────────────────────────────────────────────────────────────