当前位置: 首页 > news >正文

MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台

前言

大家好,我是老马。

sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。

最近想学习一下 SOFA 对于生态的设计和思考。

sofaboot 系列

SOFABoot-00-sofaboot 概览

SOFABoot-01-蚂蚁金服开源的 sofaboot 是什么黑科技?

SOFABoot-02-模块化隔离方案

SOFABoot-03-sofaboot 介绍

SOFABoot-04-快速开始

SOFABoot-05-依赖管理

SOFABoot-06-健康检查

SOFABoot-07-版本查看

SOFABoot-08-启动加速

SOFABoot-09-模块隔离

SOFABoot-10-聊一聊 sofatboot 的十个问题

MOSN 简介

MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台,由蚂蚁集团开源并经过双 11 大促几十万容器的生产级验证。

MOSN 为服务提供多协议、模块化、智能化、安全的代理能力,融合了大量云原生通用组件,同时也可以集成 Envoy 作为网络库,具备高性能、易扩展的特点。

MOSN 可以和 Istio 集成构建 Service Mesh,也可以作为独立的四、七层负载均衡,API Gateway、云原生 Ingress 等使用。

核心能力

  • Istio 集成
    • 集成 Istio 1.10 版本,可基于全动态资源配置运行
  • 核心转发
    • 自包含的网络服务器
    • 支持 TCP 代理
    • 支持 UDP 代理
    • 支持透明劫持模式
  • 多协议
    • 支持 HTTP/1.1,HTTP/2
    • 支持基于 XProtocol 框架的多协议扩展
    • 支持多协议自动识别
    • 支持 gRPC 协议
  • 核心路由
    • 支持基于 Domain 的 VirtualHost 路由
    • 匹配条件路由
      • Headers/Path/Prefix/Variable/DSL
    • 路由模式
      • 重定向
      • 直接响应
      • 流量镜像
    • 高级路由
      • 基于 Metadata 的分组路由
      • 基于权重的路由
    • 配置支持
      • 基于路由匹配的重试
      • 基于路由匹配的超时配置
      • 基于路由匹配的请求头/响应头处理
  • 后端管理 & 负载均衡
    • 连接管理
      • 支持连接池管理
      • 支持长连接心跳处理
    • 容错机制
      • 支持熔断
      • 支持后端主动健康检查
    • 负载均衡策略
      • Random/RR/WRR/EDF 等
      • 基于 Metadata 的分组策略
    • 后端集群模式
      • OriginalDst/DNS/SIMPLE
      • 支持自定义扩展集群模式
  • 可观察性
    • Trace 模块
      • 格式可扩展
      • 集成 jaeger/skywalking
    • Metrics
      • 基于 prometheus 格式
    • 日志
      • 支持可配置的 AccessLog
    • 管理接口
      • 可扩展的 Admin API
    • 监控
      • 集成 Holmes,自动监控 pprof
  • TLS
    • 证书管理
      • 多证书匹配模式
      • TLS Inspector 模式
      • 基于 SDS 的动态证书获取/更新
      • 可扩展的证书管理机制
    • 国密支持
      • 基于 CGo 的国密套件
  • 进程管理
    • 支持平滑升级(连接/配置迁移)
    • 支持优雅退出
  • 扩展能力
    • 插件扩展
      • 基于 go-plugin 的模式
      • 基于进程的扩展模式
      • 基于 WASM 的扩展模式
    • 自定义扩展
      • 支持自定义扩展配置
      • 支持四层/七层 Filter 扩展

小结

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

相关文章:

  • Java中static final才是修饰常量的,单独的final并不能修饰常量这样理解对吗?
  • 【Linux】线程基础
  • 全星FMEA软件系统——助力汽车部件行业高效管控质量风险
  • [计算机三级网络技术]第二章:中小型网络系统总体规划与设计方法
  • VSTO(C#)Excel开发进阶1:设计功能区Ribbon 对话框加载器 多个功能区 多个组
  • 酷淘商场项目【从零到一详解】Web端
  • 华为交换相关
  • 编程基础:位运算01,位运算引言
  • 动态添加view方法-微信小程序
  • 大模型在肺血栓栓塞症风险预测及临床方案制定中的应用研究
  • SpringMVC的请求与响应
  • 剑指 Offer II 117. 相似的字符串
  • C++:类型推导规则 unsigned short + 1
  • 数据结构-二叉链表存储的二叉树
  • 在 Simulink 里构建输水隧洞充水过程模型的基本步骤与思路
  • 人工智能之数学基础:广义特征值和广义特征向量是什么?
  • 【2025】基于springboot+vue的学习预警管理系统的设计与实现(源码、万字文档、图文修改、调试答疑)
  • 【前端实战】程序员版合成大西瓜游戏开发全解析 —— HTML5+JS打造趣味物理小游戏(附完整源码)
  • 金橙子删除打标对象
  • 手动配置树莓派wifi联网连接热点手机热点
  • 长三角9座“万亿城市”一季报出炉:多地机器人产量大增
  • 体坛联播|米兰逆转热那亚豪取3连胜,阿诺德官宣离开利物浦
  • 许昌市场监管部门对胖东来玉石开展日常检查:平均毛利率不超20%
  • 库里22分赢下抢七大战,火箭10年难破“火勇大战”的魔咒
  • 马上评|“景区陪爬”能成为新职业吗?
  • 云南省政协原党组成员、秘书长车志敏接受审查调查