MOSN 发布 V0.15.0 版本,具体变更如下:
我们很高兴的宣布 MOSN v0.15.0 发布,恭喜邓茜(@dengqian)成为 MOSN Committer,感谢她为 MOSN 社区所做的贡献。
以下是该版本的变更日志。
新功能
- 路由 Path Rewrite 支持按照正则表达式的方式配置 Rewrite 的内容 @liangyuanpeng
- 配置新增字段: 扩展配置字段,可通过扩展配置字段自定义启动配置;Dubbo 服务发现配置通过扩展的配置字段实现 @cch123
- 支持 DSL 新特性,可以方便的对请求的处理行为进行控制 @wangfakang
- StreamFilter 新增流量镜像功能的扩展实现 @champly
- Listener 配置新增对 UDP 的支持 @dengqian
- 配置格式支持 Yaml 格式解析 @GLYASAI
- 路由支持 HTTP 重定向配置 @knight42
优化
- 支持 istio 的 stats filter,可以根据匹配条件进行 metrics 的个性化记录 @wzshiming
- Metrics 配置支持配置 Histogram 的输出百分比 @champly
- StreamFilter 新增状态用于直接中止请求,并且不响应客户端 @taoyuanyuan
- XProtocol Hijack 响应支持携带 Body @champly
- Skywalking 升级到 0.5.0 版本 arugal
- Upstream 连接 TLS 状态判断修改,支持通过 TLS 配置的 Hash 判断是否需要重新建立连接 @nejisama
- 优化 DNS cache 逻辑,防止在 DNS 失效时可能引起的 DNS flood 问题 @wangfakang
Bug 修复
- 修复开启 TLS 加密场景下,XProtocol 协议在有多个协议的场景下判断协议错误的 BUG @nejisama
- 修复 AccessLog 中前缀匹配类型的变量不生效的 BUG @dengqian
- 修复 Listener 配置解析处理不正确的 BUG @nejisama
- 修复 Router/Cluster 在文件持久化配置类型中,Name 字段包含路径分隔符时会保存失败的 BUG @nejisama
New Features
- Routing Path Rewrite supports configuring the content of Rewrite by regular expression @liangyuanpeng
- Configure new fields: Extended configuration fields, you can start the configuration by extending the configuration fields; Dubbo service discovery configuration via extended configuration fields @cch123
- New DSL feature for easy control of request processing behavior @wangfakang
- Extended implementation of StreamFilter with new traffic mirroring function @champly
- Listener configuration adds UDP support @dengqian
- Configuration format support YAML format parsing @GLYASAI
- Routing support for HTTP redirect configuration @knight42
Optimization
- Istio's stats filter for personalizing metrics based on matching criteria @wzshiming
- Metrics configuration support to configure the output percentage of the Histogram @champly
- StreamFilter New state for aborting requests directly and not responding to clients @taoyuanyuan
- XProtocol hijack response support carry body @champly
- Apache SkyWalking upgrade to version 0.5.0 arugal
- Upstream Connection TLS State Determination Modification to support the determination of whether a connection needs to be re-established via a TLS-configured Hash @nejisama
- Optimize DNS cache logic to prevent DNS flooding issues that can be caused when DNS fails @wangfakang
MOSN 简介
MOSN(Modular Observable Smart Network), 是一款采用 GoLang 开发的 Service Mesh 数据平面代理, 功能和定位类似 Envoy,旨在提供分布式,模块化,可观察,智能化的代理能力。 MOSN 支持 Envoy 和 Istio 的 API,可以和 Istio 集成,。 MOSN 初始版本由蚂蚁金服和阿里大文娱UC事业部携手贡献,期待社区一起来参与后续开发,共建一个开源精品项目。
核心能力
- Istio集成
- 集成 Istio 1.0 版本与 V4 API,可基于全动态资源配置运行
- 核心转发
- 自包含的网络服务器
- 支持 TCP 代理
- 支持 TProxy 模式
- 多协议
- 支持 HTTP/1.1,HTTP/2
- 支持 SOFARPC
- 支持 Dubbo 协议(基于XProtocol支持)
- 核心路由
- 支持 Virtual Host 路由
- 支持 Headers/URL/Prefix 路由
- 支持基于 Host Metadata 的 Subset 路由
- 支持重试
- 后端管理&负载均衡
- 支持连接池
- 支持熔断
- 支持后端主动健康检查
- 支持 Random/RR 等负载策略
- 支持基于 Host Metadata 的 Subset 负载策略
- 可观察性
- 观察网络数据
- 观察协议数据
- TLS
- 支持 HTTP/1.1 on TLS
- 支持 HTTP/2.0 on TLS
- 支持 SOFARPC on TLS
- 进程管理
- 支持平滑 reload
- 支持平滑升级
- 扩展能力
- 支持自定义私有协议
- 支持在 TCP IO 层,协议层面加入自定义扩展
Bug fixes
- Fix the bug that XProtocol protocols determine protocol errors in scenarios with multiple protocols when TLS encryption is enabled @nejisama
- Fix bug in AccessLog where variables of prefix match type don't work @dengqian
- Fix bug where Listener configuration parsing is not handled correctly @nejisama
- Fix Router/Cluster bug that fails to save when the Name field contains a path separator in the file persistence configuration type @nejisama