GaGa's Blog

One GaGa, One World !

在阿里云应用型负载均衡(ALB)中,连接空闲超时时间(Idle Timeout) 是指 ALB 实例与客户端之间建立的TCP连接在没有数据传输的情况下,能够保持打开状态的最长时间。若在此时间内始终无任何数据交互,ALB 将主动断开该连接


1.定义与行为说明

  • 默认值:15 秒
  • 取值范围:1~600 秒(基础配置),最大可申请提升至 3600 秒
  • 触发条件:连接建立后,客户端与 ALB 之间无任何数据收发(包括 HTTP 请求/响应、WebSocket 消息、心跳包等)
  • 断开行为:超时后,ALB 主动关闭连接;下一次客户端发起请求时需重新建立新连接
Read more »

在阿里云应用型负载均衡(ALB)中,实现服务器组内后端服务的滚动升级(Rolling Update),核心目标是:在不中断业务的前提下,逐批替换或更新后端服务器实例。ALB本身不直接提供“滚动升级”功能,但可通过其连接优雅中断权重控制健康检查机制弹性伸缩(ESS)或外部编排工具(如 Kubernetes)协同配合来实现平滑滚动升级。


1.移除服务器 + 连接优雅中断实现滚动升级(推荐)

这是最符合 ALB 设计语义、且能确保优雅下线的方式。

Read more »

所需权限

权限 Action 说明
oss:DeleteObject 删除单个文件/目录的权限
oss:DeleteMultipleObjects 批量删除多个文件的权限(推荐)
oss:ListObjects 列举目录下文件的权限(删除前需先列出目录内容)

重要说明

Read more »

1.技术性能收益

维度 PHP Java 提升幅度
并发能力 每请求独立进程 线程共享内存 + 虚拟线程 3-10倍 QPS
延迟 P99 ~150ms P99 ~28ms(GraalVM 降低80%+
内存效率 每进程50MB+ JVM堆共享,~10MB 节省40-60%
启动速度 秒级 GraalVM Native <500ms 接近持平

实测数据(同配置服务器):

PHP 8.x + Laravel:     QPS ~800,   内存 200MB
Java 21 + Spring Boot: QPS ~3500,  内存 256MB
Java 21 + GraalVM:     QPS ~4200,  内存 64MB
Read more »

引导式学习是一种“边学边练”的学习方式。我会像导师一样,把复杂内容拆解成容易理解的小步骤,并通过提问、举例、练习和反馈,帮助你逐步掌握知识,而不是一次性灌输大量信息。

适合

  • 学习新知识(如编程、数学、英语、历史等)
  • 备考和刷题
  • 阅读论文、教材或技术文档
  • 理解工作中的专业知识
  • 训练逻辑思维和问题解决能力

1.软件架构解决的根本问题

软件架构 = 复杂性管理

核心矛盾:

矛盾 表现
复杂性 vs 可管理性 系统规模增长导致难以理解
可伸缩性 vs 性能 扩展能力与响应速度权衡
灵活性 vs 稳定性 变更能力与系统可靠性的平衡
可重用性 vs 特定需求 通用方案与定制功能的冲突
Read more »

1. I/O本质:两个阶段

阶段一:等待数据就绪(进程阻塞)
阶段二:数据拷贝(内核缓冲区 → 用户缓冲区)

I/O耗时 = 等待时间 + 拷贝时间

2.五种I/O模型对比

模型 阻塞情况 适用场景
阻塞I/O 两个阶段都阻塞 简单应用
非阻塞I/O 不阻塞,需轮询 异步框架基础
I/O复用 select/poll/epoll 高并发服务器
信号驱动 SIGIO通知 特定场景
异步I/O 完全不阻塞 io_uring
Read more »

1.本质区别

类型 作用 执行环境 开销
系统调用 用户程序访问内核服务的唯一入口 用户态→内核态切换 高(特权切换)
库函数 对系统调用的封装和增强 纯用户态执行

2.调用关系图

应用程序代码
    │
    ▼
printf("hello")          ← 库函数(有缓冲、格式化)
fopen("file.txt")        ← 库函数(缓冲I/O)
    │
    ▼
glibc/C标准库内部实现
    │
    ▼
write(fd, buf, n)        ← 库函数最终调用系统调用
open(path, flags)        ← 库函数最终调用系统调用
    │
    ▼
内核trap指令 → 系统调用表 → 内核处理函数
Read more »

1.产生的历史背景

UNIX战争(1980s)导致两大阵营分裂:

  • AT&T System V vs 伯克利BSD
  • 各自扩展接口,互不兼容
  • 应用程序移植困难,企业IT成本激增

解决之道:1988年IEEE发布 1003.1 标准,统一系统调用接口。

Read more »

1.优势(Pros)

1.1 技术层面

优势 说明 具体体现
统一技术栈 前后端使用同一语言 JavaScript/TypeScript贯穿全栈
跨平台能力 一套代码多端运行 Web + 移动端 + 桌面端 + 小程序
开发效率高 热更新、快速迭代 Vite/HMR秒级刷新
生态丰富 npm包管理 100万+ 开源组件可复用
工具链成熟 完善的基础设施 ESLint/Prettier/Jest/Vite
传统前后端分离:              大前端模式:
┌────────┐   HTTP   ┌────────┐    ┌────────┐   HTTP   ┌────────
│ 前端    │─────────▶│ 后端   │    │ 前端+  │─────────▶│ BFF   
│ React  │          │ Java   │    │ Node.js          │ Node 
└────────┘          └────────┘    │ TypeScript         └───┬────
        两种语言                    └────────┘               │
                                                             ▼
                                                    ┌────────────────┐
                                                    │  微服务 (Java/Go)
                                                    └────────────────┘
                     统一语言:JavaScript/TypeScript
Read more »
0%