SOFA MOSN v0.6.0 发布了,主要变更如下:
i. Listener 支持配置空闲连接超时关闭
ii. 日志新增 Alertf 接口
iii. 支持 SDS 方式获取证书
iv. Metrics统计与输出优化
v. IO 协程优化
vi. 后端模块实现重构,提升了动态更新性能,降低了内存的使用
vii. racer 模块实现重构,支持更完善的扩展机制
New Features
- Add "connection_idle_timeout" field to Listener config, default 90s. Mosn will close idle connections when timeout.
- New function "Alertf" in ErrorLogger
- Support getting certificates from SDS mode
Refactor
- Refactor the upstream package
- Refactor the inner cluster structure
- UpdateHost does full update every time, instead of incremental update
- Refactor the snapshot implementation
- Optimize memory usage
- Some functions parameters are changed
- Refactor tracing implementation
Performance Optimize
- Optimize connection metrics
- Optimize metrics prometheus output format
- Optimize network IO
Bug Fix
- Fix panic when creating logger concurrently
- Fix panic when doing response and timeout simultaneously
- Fix http handle reset stream bug
- Fix log file cannot rotate when log file is deleted
- Fix http2 goway bug
- Fix http handle non-persistent connection bug
SOFAMosn 简介
MOSN(Modular Observable Smart Network), 是一款采用 GoLang 开发的 Service Mesh 数据平面代理, 功能和定位类似 Envoy,旨在提供分布式,模块化,可观察,智能化的代理能力。 MOSN 支持 Envoy 和 Istio 的 API,可以和 Istio 集成,在 SOFAMesh 中,我们使用 MOSN 替代 Envoy。 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 层,协议层面加入自定义扩展