GaGa's Blog

One GaGa, One World !

1.起源:Research UNIX(1969-1979)

诞生背景

  • 时间:1969年,贝尔实验室
  • 地点:美国新泽西州 Murray Hill
  • 人物:Ken Thompson、Dennis Ritchie、Brian Kernighan 等
  • 硬件:DEC PDP-7 → PDP-11
  • 前身:Multics(Project Multics,受CTSS分时系统启发)
  • 最初名称:Unics(UNiplexed Information and Computing System,反语取名)

早期版本演进

Read more »

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


1.定义与行为说明

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

什么是 PWA?

PWA = 网站的能力 + 原生应用体验

┌─────────────────────────────────────────────────────────────
│                     PWA 三大支柱                             
├─────────────────────────────────────────────────────────────
│                                                             
│   1. Service Worker        2. Web App Manifest            
│      ↓                       ↓                              
│   离线缓存 + 后台同步     安装到桌面 + 全屏运行             
│                                                             
│   3. HTTPS + 响应式设计                                    
│      ↓                                                       
│   安全传输 + 全设备适配                                     
│                                                             
└─────────────────────────────────────────────────────────────

一句话定义:

PWA 是使用现代 Web 技术构建的应用,具备离线可用、可安装、推送通知等原生应用特性,同时保持 Web 的跨平台、无需安装优势。

Read more »

1.什么是大前端

维度 传统前端 大前端
技术范围 HTML/CSS/JS + 浏览器 浏览器 + 服务端 + 移动端 + 桌面端
编程语言 JavaScript JavaScript/TypeScript全栈
开发边界 仅客户端 客户端 + 服务端 + DevOps
核心框架 jQuery → React/Vue React/Vue + Node.js全栈
大前端 = 前端技术 + Node.js + 移动开发 + 跨端方案 + 工程化工具链
        ↓
   "一人抵一个团队"

2.Node.js在大前端中的定位

Read more »
0%