B站的 CDN 下行边缘节点过去是非集群化架构。这种架构下有几个弊端: 增加调度逻辑复杂性; 同机房流量/负载难以均衡; 暴露过多的公网IP,增加安全隐患 (盗链等); 灰度流量比例分配粒度大; 针对以上问题,我们调研了常见的四层负载均衡器, 传统的 SLB,LVS,DPVS 这类四层负载均衡器,在功能上也能满足我们现有的需求。但是以上几个负载均衡器均需要独占机器,进而造成成本升高,资源浪费。 有没有一种既不增加成本,又能解决边缘节点四层负载需求的方案呢?由 Cloudflare 提出的基于 Express Data Path (XDP) 的高性能四层负载均衡器 Unimog[1]性能优异,并且可以和后端服务同机部署,在性能上也完全满足我们边缘场景的要求。所以我们参考 Cloudflare Unimog 的思想,在其基础上自研了适用于B站的边缘四层负载均衡器 Nickel (以下简称 Ni) 。
为优化淘宝带宽成本,我们在网关 SDK(Java)统一使用 ZSTD 替代 GZIP 压缩以获取更高的压缩比,从而得到更小的响应包。具体实现采用官方推荐的 zstd-jni 库。zstd-jni 会调用 zstd 的 c++ 库。
在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。在不同的书籍上, 不同的作者, 对于架构的定义也不统一、角度不同、定义不同。此君说的架构和彼君理解的架构未必是一回事。 因此我们在讨论架构之前,先讨论架构的概念定义, 因为概念是人认识这个世界的基础和用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 今天的系列图就跟大家分享鹅厂工程师关于架构设计的理解与总结。
近年来,越来越多人意识到,我们正处在一个数据爆炸式增长的时代。IDC 预测 2027 年全球产生的数据量将达到 291 ZB,与 2022 年相比,增长了近 2 倍。其中 75% 的数据来自企业,每一个现代化的企业都是一家数据公司。 阿里云副总裁、阿里云云存储产品线负责人吴结生在云栖大会的演讲中提到:“从云的角度来看,云的存力、算力,云上提供的数据管理的能力,大数据分析能力和人工智能计算能力,帮助每家企业从数据公司演进到数据驱动的公司。因此云计算是企业实现数智化的阶梯。”
作者参与了一个问题排查,最后得到的结论和枚举类的规范有关系,本文将过程总结在这里提供大家一起学习交流。