MOSN 是一款采用 Golang 开发的 Service Mesh 数据平面代理,功能和定位类似 [Envoy](https://www.oschina.net/p/envoy) ,旨在提供分布式,模块化,可观察,智能化的代理能力。MOSN 支持 Envoy 和 [Istio](https://www.oschina.net/p/istio) 的 API ,可以和 Istio 集成。SOFAMesh 中,我们使用 MOSN 替代 Envoy 。
初始版本由蚂蚁金服和阿里大文娱 UC 事业部携手贡献,期待社区一起来参与后续开发,共建一个开源精品项目。
Istio集成
集成 Istio 0.8 版本 Pilot V2 API,可基于全动态资源配置运行(即将升级到Istio 1.0版本和 V4 API)
核心转发
自包含的网络服务器
支持 TCP 代理
支持 TProxy 模式
多协议
支持 HTTP/1.1,HTTP/2
支持 SOFARPC
支持 Dubbo 协议(开发中)
支持 HSF 协议(开发中)
核心路由
支持 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 层,协议层面加入自定义扩展
[参考这里](https://gitee.com/alipay/sofa-mosn/blob/master/docs/design/README.md)
[参考这里](https://gitee.com/alipay/sofa-mosn/blob/master/docs/develop/quickstart.md)
基于 Golang 1.9.2 研发,使用 dep 进行依赖管理
[Docs](http://www.sofastack.tech/sofa-mesh/docs/mosn-README)
[Issues](https://github.com/alipay/sofa-mosn/issues)
[代码贡献](https://gitee.com/alipay/sofa-mosn/blob/master/docs/CONTRIBUTING.md)
MOSN 仍处在初级阶段,有很多能力需要补全,很多 bug 需要修复,欢迎所有人提交代码。我们欢迎您参与但不限于如下方面:
核心路由功能点补全
Outlier detection
Tracing 支持
HTTP/1.x, HTTP/2.0 性能优化
流控
感谢 Google、IBM、Lyft 创建了 Envoy、Istio 体系,并开源了优秀的项目,使 MOSN 有了非常好的参考,使我们能快速落地自己的想法。
- 授权协议:
- Apache 2.0
- 开发语言:
- Google Go 查看源码»
- 操作系统:
- 跨平台