Code Monkey home page Code Monkey logo

sofa-mosn's Introduction

MOSN Project

Build Status codecov Go Report Card license

MOSN是一款采用 Golang 开发的Service Mesh数据平面代理,功能和定位类似Envoy,旨在提供分布式,模块化,可观察,智能化的代理能力。MOSN支持Envoy和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 on TLS
    • 支持SOFARPC on TLS
  • 进程管理
    • 支持平滑reload
    • 支持平滑升级
  • 扩展能力
    • 支持自定义私有协议
    • 支持在TCP IO层,协议层面加入自定义扩展

架构设计

快速开始

  • 参考这里
  • 基于Golang 1.9.2研发,使用dep进行依赖管理

文档

社区

贡献

  • 代码贡献
  • MOSN仍处在初级阶段,有很多能力需要补全,很多bug需要修复,欢迎所有人提交代码。我们欢迎您参与但不限于如下方面:
    • 核心路由功能点补全
    • Outlier detection
    • Tracing支持
    • HTTP/1.x, HTTP/2.0性能优化
    • 流控

致谢

感谢Google、IBM、Lyft创建了Envoy、Istio体系,并开源了优秀的项目,使MOSN有了非常好的参考,使我们能快速落地自己的想法。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.