主要观点总结
Bun v1.1.25版本发布,带来多项改进,包括支持node:cluster API实现负载均衡,支持V8公开C++ API,修复多个bug,如execa包兼容性问题以及TCP连接挂起问题等。
关键观点总结
关键观点1: Bun支持node:cluster API,可在生产环境中进行负载均衡。
Bun现在支持node:cluster API,允许在同一端口上运行一组Bun workers,从而提高吞吐量和利用率。这对于拥有多个CPU核心的机器来说,是在生产环境中进行负载均衡的最佳选择。
关键观点2: Bun支持V8的公开C++ API。
Bun现在支持V8的公开C++ API,这使得一些依赖这些API的软件包,如cpu-features,可以在Bun中正常工作。这是一项艰巨的工程,因为JavaScriptCore和V8以不同的方式表示JavaScript值。
关键观点3: Bun修复了多个bug,包括execa包兼容性问题以及TCP连接挂起问题等。
Bun修复了node:http客户端实现中的一个bug,使得上传到S3的速度提高了5倍。此外,还修复了独立可执行文件中的Worker和node:worker_threads的绑定问题,以及一系列其他bug,包括execa包的兼容性问题,和TCP连接挂起问题等。
文章预览
近期,Bun 发布了 v1.1.25 版本,并高调宣布在最新的性能测试中,每秒可以处理 129 万个 HTTP 请求,我们一起来看看这个版本究竟做了哪些改进吧。 node:cluster 支持 Bun 现在支持 node:cluster API。 通过使用这个 API,你可以在同一个端口上运行一组 Bun workers ,从而实现更高的吞吐量和利用率。对于拥有多个 CPU 核心的机器来说,这是在生产环境中进行负载均衡的最佳选择。 下面是一个工作原理的示例: 主要的 worker 会创建 n 个子 worker,一般数量与 CPU 核心数相同; 每个子 worker 都会监听相同的端口(使用 reusePort ); 传入的 HTTP 请求会在子 worker 之间进行负载均衡分配处理。 import cluster from "node:cluster" ; import http from "node:http" ; import { cpus } from "node:os" ; import process from "node:process" ; if (cluster.isPrimary) { console .log( `主进程 ${pro
………………………………