从Sidecar到eBPF:服务网格流量管理的十五年架构博弈
2016年,某电商平台在双十一促销中遭遇了诡异的服务调用超时。排查后发现,问题并非来自业务代码,而是服务间的网络通信层——每个微服务实例旁边都跑着一个Envoy代理,它们在处理mTLS加密、流量统计、熔断检测等任务时,竟吃掉了30%的CPU资源。这不是一个孤立的案例,而是一个技术演进过程中必然会暴露的深层矛盾:我们为了解决微服务通信的复杂性,引入了一个新的复杂层。 ...
2016年,某电商平台在双十一促销中遭遇了诡异的服务调用超时。排查后发现,问题并非来自业务代码,而是服务间的网络通信层——每个微服务实例旁边都跑着一个Envoy代理,它们在处理mTLS加密、流量统计、熔断检测等任务时,竟吃掉了30%的CPU资源。这不是一个孤立的案例,而是一个技术演进过程中必然会暴露的深层矛盾:我们为了解决微服务通信的复杂性,引入了一个新的复杂层。 ...
1983年,当Linus Torvalds还在芬兰赫尔辛基大学读书时,Unix系统的中断处理已经发展了二十多年。那时的中断处理程序必须完成所有工作:响应硬件、读取数据、通知进程。这种设计在单处理器、低频率设备时代还算可行,但随着网络速度从10Mbps攀升到100Mbps,再到今天的400Gbps,中断处理的时间预算被压缩到了微秒级。 ...
2023年9月,土耳其电商平台Trendyol的产品详情页INP指标高达963毫秒,处于"差"评级。用户点击商品后,页面近乎冻结。六个月后,这个数字降到了481毫秒——INP改善50%,点击率提升1%。转折点只改动了了几行代码:用scheduler.yield()替换了setTimeout。 ...
2024年,一家大型体育用品电商网站发现他们的商品分类页面在移动端存在严重的响应性问题——用户点击筛选按钮后,页面需要数百毫秒才能响应。Chrome DevTools的性能分析显示,问题根源在于浏览器渲染管道的过度工作:每当用户操作触发DOM变化,浏览器就需要重新计算整个页面的布局,即使变化的只是屏幕可见区域之外的几个商品卡片。 ...
计算机科学领域存在一个广为流传的二八定律:程序80%的执行时间耗费在20%的代码上,而这20%的代码中,循环结构占据主导地位。正因如此,循环优化成为编译器技术中最核心的研究方向之一。 ...
一个数据库团队花了三周搭建的压测环境,在模拟10万QPS流量时,P99延迟稳定在50毫秒以内。上线后第一天的流量峰值刚到6万QPS,监控系统就开始疯狂报警——大量请求超时,用户反馈页面卡顿。 ...
2007年,Russ Cox发表了一篇影响深远的文章《Regular Expression Matching Can Be Simple And Fast》。他做了一个令人震惊的对比测试:用正则表达式 a?^n a^n(n个可选a后跟n个a)匹配字符串 a^n(n个a)。当n=29时,Perl需要超过60秒,而Thompson NFA实现只需要20微秒——相差三百万倍。更惊人的是,当n=100时,Thompson NFA只需不到200微秒,而Perl理论上需要超过10^15年。 ...