写点什么

Flomesh 发布 Pipy 0.50.0

作者:Flomesh
  • 2022 年 8 月 30 日
    北京
  • 本文字数:1074 字

    阅读完需:约 4 分钟

Flomesh 发布 Pipy 0.50.0

好久不见,Pipy 一直未停止更新的脚步。在上个版本发布的三个月后,我们迎来了 Pipy 的重大更新:0.50.0。这次更新包括了性能提升、HTTP2 & gRPC 等更多协议支持、漏洞修复,同时增加更多的过滤器来提升 PipyJS 的编码效率和脚本可读性。

Pipy 新增的众多功能,将在我们即将发布的边缘服务网格产品中有所体现,敬请期待。

后续,我们也会针对本次更新的内容更新教程。

核心

管道

  • 用于读取文件(或者标准输入)的新管道类型

  • 添加管道生命周期回调 onStart()/onEnd()

  • 入站和出站的连接支持空闲超时

  • 套接字读取性能优化

Metrics

  • Repo 节点从连接的工作节点采集指标

  • 采集到指标在 repo 节点最多可保留 5 分钟,用于在管理界面中进行图表展示

  • Prometheus 从 repo 节点拉取指标,并使用 gizp 对数据进行压缩

  • 添加新的指标用于记录入站/出站数据和连接时间

Logging

  • 工作节点将准实时的日志流发送到 repo 节点

代码库

  • 通过 WebSocket 将代码库更新通知到工作节点来立即加载脚本

  • 代码库支持删除操作

PipyJS

  • 加入匿名子管道的嵌套语法

  • 添加 pipy.resolve() 来执行外部文件中的脚本

  • 添加 -e 选项来执行命令行中的 PipyJS 脚本

  • 函数参数支持默认值

  • 字符串的长度提高到 256MB

  • 优化对象字面量构造的性能

协议

HTTP/2 & gRPC

  • 支持除了服务器推送外的所有 HTTP/2 规范

  • 扩展 demuxHTTP()/muxHTTP() 来支持 HTTP/2 协议协商

HTTP/1.x

  • HTTP 消息增加 Trailer 消息头支持

  • 修正 HTTP 状态码 100 的处理

  • 通过 detectProtocol() 过滤器探测 HTTP/1 流量

  • 提升 HTTP/1.x 解码性能

MQTT

  • 通过引入 input()/output() 过滤器为 MQTT 及类似的协议增加新的管道通信模型

  • 标准一致性错误修复

WebSocket

  • 支持 WebSocket 的编解码

  • 使用 WebSocket 作为 repo 节点和工作节点的通信渠道

UDP

  • 增加 UDP 监听器

TLS

  • 为 acceptTLS()/connectTLS() 过滤器加入 ALPN 的支持

  • OpenSSL 版本升级到 1.1.1o

API

  • 用于通用日志记录的新 API

  • 使用 algo.Qutota 来替换原本节流过滤器使用的 “accounts”

  • 添加 Data.shiftWhile() 和 shiftTo() 用于在 PipyJS 中做简单的数据格式解析

  • 添加 LoadBalancer.next() 提供内建的连接池

  • 添加 algo.uuid() 用于生成 UUIDv4

  • 提升 JSON.encode() 的性能

过滤器

  • 新过滤器 branch() 支持条件判断的内嵌匿名子管道

  • 新过滤器 depositMessage() 可将大消息缓冲到临时文件

  • 新过滤器 deframe() 用于通过 PipyJS 进行通用协议的解帧

  • 新过滤器 compressMessage() 用于 deflate/gzip 压缩

  • 新过滤器 decodeMultipart() 用于将 MIME 多部分消息解码为多条消息

  • 所有的复用过滤器支持设置队列的最大值

  • decompressMessage() 过滤器支持 Brotli 算法

  • tee() 过滤器支持写数据到标准输出

  • wait() 过滤器支持超时设置

发布于: 刚刚阅读数: 4
用户头像

Flomesh

关注

微信订阅号:flomesh 2022.04.07 加入

一站式云原生应用流量管理供应商 官网:https://flomesh.io

评论

发布
暂无评论
Flomesh 发布 Pipy 0.50.0_Flomesh_InfoQ写作社区