今天看啥  ›  专栏  ›  全栈修仙之路

Bun.js 太强了,每秒处理 129 万个请求!

全栈修仙之路  · 公众号  · 科技自媒体  · 2024-09-03 17:30
    

主要观点总结

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 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览