- 路由支持删除请求头指定字段的配置 @wangfakang
- WASM 支持 Reload @zu1k
- 集成 SEATA TCC 模式,支持 HTTP 协议 [@dk-lockdown]((https://github.com/dk-lockdown)
- 新增 boltv2 协议的 tracelog 支持 @nejisama
- gRPC 框架新增 Metrics 统计相关 Filter 扩展 @wenxuwan
- 新增 xds cluster 解析支持 DNS 相关字段 @antJack
- MOSN 核心代码和 Istio 引入相关 xDS 代码解耦合 @nejisama
- 更新 proxy-wasm-go-host 版本 @zhenjunMa
- 修改 networkfilter 配置解析逻辑,支持更新添加接口、查询接口 @antJack
- Makefile 中执行模式使用
mod vendor
代替GO111MODULE=off
@scaat - 转移部分 archived 到 mosn.io/pkg 路径下 @nejisama
- 优化 EDF 负载均衡:在首次选择时的机器进行随机选择 @alpha-baby
- 提升 EDF 负载均衡函数的性能 @alpha-baby
- 调整 boltv2 心跳请求和心跳响应的处理 @nejisama
- 优化 HTTP2 在 Stream 模式下的重试处理和 Unary 请求优化 @XIEZHENGYAO
- 当通过环境变量设置 GOMAXPROCS 时,无视 CPU 数量的限制 @wangfakang
- 优化 subset 创建时的内存使用 [@dzdx]((https://github.com/dzdx)
- 优化 gRPC 框架,支持不同的 Listener 可以支持同名 Server 独立运行 @nejisama
- 修复重试时如果返回的机器地址为空会导致卡死的问题 @XIEZHENGYAO
- 修复消息连接池处理连接事件的 BUG @RayneHwang
- 修复没有初始化 Trace Driver 时调用 Enable Trace 导致的 panic 问题 @nejisama
- 修复 boltv2 协议在构造异常响应时数据错误的问题 @nejisama
- 修复 HTTP2 连接失败时异常处理的问题 @XIEZHENGYAO
- typo 错误修复 @jxd134 @yannsun
- 修复
RequestInfo
输出ResponseFlag
的错误 @wangfakang - 修复 bolt/boltv2 协议编码时,在空数据时没有重新计算长度位的问题 @hui-cha
- 支持使用 jaeger 收集 OpenTracing 信息 @Roger
- 路由配置新增变量配置模式,可通过修改变量的方式修改路由结果 @wangfakang
- 路由 virtualhost 匹配支持端口匹配模式 @jiebin
- 实现 envoy 中的 filter: header_to_metadata @antJack
- 支持 UDS 的热升级 @taoyuanyuan
- 新增 subset 负载均衡逻辑,在没有元数据匹配的场景下使用全量机器列表进行负载均衡 @nejisama
- MOSN 的 gRPC 框架支持优雅关闭 @alpha-baby
- 优化 Cluster 配置更新时的健康检查更新模式 @alpha-baby
- api.Connection 新增 OnConnectionEvent 接口 @CodingSinger
- 权重轮询负载均衡兜底策略调整为普通轮询负载均衡 @alpha-baby
- 在 MOSN 变量模块中增加 interface 值类型 @antJack
- Subset 判断机器个数与是否存在时,同样遵循兜底策略 @antJack
- dubbo stream filter 支持协议自动识别 @Thiswang
- 修复轮询负载均衡在并发情况下结果异常 @alpha-baby
- 修复 unix 地址解析异常 @taoyuanyuan
- 修复 HTTP1 短连接无法生效的异常 @taoyuanyuan
- 修复国密 TLS SM3 套件在连接断开后存在的内存泄漏 @ZengKe
- 当连接被对端重置或管道断裂时 HTTP2 支持重试 @taoyuanyuan
- 修复从连接池中获取到的 host 信息错误 @Sharember
- 修复在 route 模块中选择权重集群的数据竞争 @alpha-baby
- 如果 host 不健康时,在 Edf 负载均衡算法中不能正确返回 @alpha-baby
- 修复 XProtocol 路由配置超时无效的问题 @nejisama
- 新增 networkfilter:grpc,支持通过 networkfilter 扩展方式在 MOSN 中实现可复用 MOSN 其他能力的 grpc server @nejisama @zhenjunMa
- StreamFilterChain 新增遍历调用的扩展接口 @wangfakang
- bolt 协议新增 HTTP 403 状态码的映射 @pxzero
- 新增主动关闭 upstream 连接的能力 @nejisama
- networkfilter 配置解析能力优化 @nejisama
- proxy 配置解析支持按照协议扩展,配置解析时机优化 @nejisama
- TLS 连接新增证书缓存,减少重复证书的内存占用 @nejisama
- 优化 Quick Start Sample @nobodyiam
- 优化默认路由处理时的 context 对象生成 @alpha-baby
- 优化 Subset LoadBalancer 的创建函数接口 @alpha-baby
- 新增使用 so plugin 扩展方式接入协议扩展的示例 @yichouchou
- 优化 makefile 中获取 GOPATH 环境变量的方式 @bincherry
- 支持 darwin + arrch64 架构的编译 @nejisama
- 优化日志打开方式 @taoyuanyuan
- HTTP1 修复 URL 处理编码问题 @morefreeze
- HTTP1 修复 URL 处理大小写敏感错误问题 @GLYASAI
- TLS 修复 SM4 套件异常处理时存在的内存泄漏问题 @william-zk
- 新增 Wasm 扩展框架 @antJack
- XProtocol 协议新增 x-bolt 子协议,支持基于 Wasm 的协议编解码能力 @zonghaishang
- 支持自动协议识别失败时根据 SO_ORIGINAL_DST 进行自动转发报文的能力 @antJack
- XProtocol 支持 Go Plugin 模式扩展 @fdingiit
- 新增网络扩展层 @wangfakang
- 支持 Istio xDS v3 API @champly 所属分支:istio-1.7.7
- 去除 StreamFilter 配置解析中多余的路径清洗 @eliasyaoyc
- 支持为 StreamFilterChain 设置统一的回调接口 @antJack
- FeatureGate 支持不同启动阶段执行,去除 FeatureGate 状态判断的全局锁 @nejisama
- Http2 模块新增对 trace 能力的支持 @OrezzerO
- 新增 StageManager,将 MOSN 启动流程划分为四个可自定义的阶段 @nejisama
- 统一 XProtocol 模块的类型定义,移动至 mosn.io/api 包 @fdingiit
- XProtocol 接口新增 GetTimeout 方法,取代原有的变量获取方式 @nejisama
- 升级 sentinel 版本到 v1.0.2 @ansiz
- 读超时收缩 tls 的 read buffer,降低 tls 内存消耗 @cch123
- 增加注释,简化 xprotocol 协议连接池实现 @cch123
- 更新 mosn registry 版本 @cadeeper @cch123
- 优化路由 Header 匹配逻辑,支持通用的 RPC 路由匹配 @nejisama
- 删除原有部分常量,新增用于描述变量机制的常量 @nejisama
- 限流模块重构,支持自定义回调扩展,可实现自定义的过滤条件,上下文信息修改等能力 @ansiz
- 修复请求异常时 metrics 统计错误 @cch123
- 修复 http 场景转发前没有对 url 进行转义的问题 @antJack
- 修复 HTTP 协议中变量注入错误的问题,修复 HTTP2 协议中不支持路由 Rewrite 的 bug @nejisama
- 支持 Domain-Specific Language 路由实现 @CodingSinger
- StreamFilter 支持 go 编写的动态链接库加载的方式 @CodingSinger
- 路由配置中 VirtualHost 支持 per_filter_config 配置 @machine3
- 支持 dubbo thrift 协议 @cadeeper
- 优化 TCP 地址解析失败默认解析 UDS 地址的问题,地址解析前添加前缀判断 @wangfakang
- 优化连接池获取的尝试间隔 @nejisama
- 支持通过全局配置关闭循环写模式 @nejisama
- 优化协议自动识别的配置示例和测试用例 @taoyuanyuan
- 用更高效的变量机制替换请求头 @CodingSinger
- 将 WriteBufferChan 的定时器池化以降低负载 @cch123
- TraceLog 中新增 MOSN 处理失败的信息 @nejisama
- HTTP 协议处理中,新增读完成 channel @alpha-baby
- 日志轮转功能加强 @nejisama
- 使用的 Go 版本升级到 1.14.13 @nejisama
- 将路由链扩展方式修改为路由 Handler 扩展方式,支持配置不同的路由 Handler @nejisama
- MOSN 扩展配置修改,支持按照配置顺序进行解析 @nejisama
- 修复 doubbo 版本升级至 2.7.3 之后 Provider 不可用的问题 @cadeeper
- 修复 netpoll 模式下,错误将 UDS 连接处理成 TCP 连接的问题 @wangfakang
- 修复 HTTP Header 被设置为空字符串时无法正确 Get 的问题 @ianwoolf
- 支持新旧 MOSN 之间通过 UDS 转移配置,解决 MOSN 使用 XDS 获取配置无法平滑升级的问题 @alpha-baby
- 协议自动识别支持 XProtocol @cadeeper
- 支持配置 XProtocol 的 keepalive 参数 @cch123
- 支持更详细的用时追踪 @nejisama
- 支持度量指标懒加载的方式,以解决服务数目过多 metrics 空间占用过大的问题 @champly
- 添加设置 XProtocol 连接池大小默认值的函数 @cch123
- 支持 netpoll 模式 @cch123
- 支持广播功能 @dengqian
- 支持从 LDS 响应中获取 tls 配置 @wZH-CN
- SDS 新增 ACK response @wZH-CN
- 使用最新的 TLS 内存优化方案 @cch123
- proxy log 优化,减少内存逃逸 @taoyuanyuan
- 增加最大连接数限制 @champly
- AccessLog 获取变量失败时,使用”-”代替 @champly
- MaxProcs 支持配置基于 CPU 使用限制自动识别 @champly
- 支持指定 Istio cluster 的网络 @champly
- 重构了 StreamFilter 框架,减少 streamfilter 框架与 proxy 的耦合,支持其他 network filter 可复用 stream filter 框架 @antJack
- 修复 HTTP Trace 获取 URL 错误 @wzshiming
- 修复 xds 配置解析时没有解析连接超时的错误 @dengqian
- 修复变量获取 Hostname 的错误 @dengqian
- 修复 tcp proxy 没有正确关闭连接的错误 @dengqian
- 修复 mixer filter 缺少默认配置,导致空指针问题 @glyasai
- 修复 HTTP2 直接响应没有正确地设置
Content-length
的问题 @wangfakang - 修复 getAPISourceEndpoint 方法空指针问题 @dylandee
- 修复 Write 堆积时,过多的 Timer 申请导致内存上涨的问题 @champly
- 修复 Dubbo Filter 收到非法响应时,stats 统计缺失的问题 @champly
- 新增 MOSN 配置文件扩展机制 @nejisama
- 新增 MOSN 配置工具,提升用户配置体验 mosn/configure @cch123
- HTTP 协议 stream 处理过程中,避免多次拷贝 HTTP body @wangfakang
- 升级了
github.com/TarsCloud/TarsGo
包到 v1.1.4 版本 @champly - 补充了连接池的单元测试 @cch123
- 使用内存池减少了 TLS 连接的内存占用 @cch123
- 减少 xprotocol stream 处理过程的临界区大小,提升性能 @cch123
- 删除
network.NewClientConnection
方法冗余参数,删除streamConn
结构体Dispatch
方法ALPN
检查 @nejisama StreamReceiverFilterHandler
增加TerminateStream
API,可在处理流的时候传入 HTTP code 异步关闭流 @nejisama- client 端 TLS handshake 失败时增加降级逻辑 @nejisama
- 修改 TLS hashvalue 计算方式 @nejisama
- 修正 disable_log admin api typo @nejisama
- 修复执行
go mod tidy
失败 @champly - 修复 MOSN 接收 XDS 消息大于 4M 时的
ResourceExhausted: grpc: received message larger than max
错误 @champly - 修复容错单元测试用例 @wangfakang
- 修复
MOSNConfig.servers[].listeners[].bind_port
设置为false
时热重启出错 @alpha-baby - 本地写 buffer 增加超时时间,避免本地写失败导致 goroutine 过多 OOM @cch123
- 修复 TLS 超时导致死循环 @nejisama
- 修复
dubbo.Frame
struct 使用SetData
方法之后数据没有被修改的问题 @lxd5866
- 新增最大 Header 大小限制的配置选项 @wangfakang
- 支持协议实现时选择是否需要 workerpool 模式,在 workerpool 模式下,支持可配置的连接并发度 @cch123
- Listener 配置新增对 UDS 的支持 @CodingSinger
- 添加在 Dubbo 协议下通过 xDS HTTP 配置进行转换的过滤器 @champly
- 优化 http 场景下的 buffer 申请 @wangfakang
- 优化 SDS Client 使用读写锁获取 @chainhelen
- 更新 hessian2 v1.7.0 库 @cch123
- 修改 NewStream 接口,从回调模式调整为同步调用的模式 @cch123
- 重构 XProtocol 连接池,支持 pingpong 模式、多路复用模式与连接绑定模式 @cch123
- 优化 XProtocol 多路复用模式,支持单机 Host 连接数可配置,默认是 1 @cch123
- 优化正则路由配置项,避免 dump 过多无用配置 @wangfakang
- 修复 README 蚂蚁 logo 地址失效的问题 @wangfakang
- 修复当请求 header 太长覆盖请求内容的问题 @cch123
- 修复 Dubbo 协议解析 attachment 异常的问题 @champly
- Logger Roller 支持自定义 Roller 的实现 @wenxuwan
- StreamFilter 新增接口 SendHijackReplyWithBody @wenxuwan
- 配置项新增关闭热升级选项,关闭热升级以后一个机器上可以同时存在多个不同的 MOSN 进程 @cch123
- 优化 MOSN 集成测试框架,补充单元测试 @nejisama @wangfakang @taoyuanyuan
- xDS 配置解析支持 DirectResponse 的路由配置 @wangfakang
- ClusterManager 配置新增 TLSContext @nejisama
- 修复在热升级时 UDP 连接超时会导致死循环的 BUG @dengqian
- 修复在 SendFilter 中执行 DirectResponse 会触发死循环的 BUG @taoyuanyuan
- 修复 HTTP2 的 Stream 计数并发统计冲突的 BUG @wenxuwan
- 修复 UDP 连接因读超时导致的数据丢失问题 @dengqian
- 修复触发重试时因为协议标识丢失导致无法正确记录响应 StatusCode 的 BUG @dengqian
- 修复 BoltV2 协议解析错误的 BUG @nejisama
- 修复 Listener Panic 后无法自动 Restart 的 BUG @alpha-baby
- 修复变量机制中 NoCache 标签无效的 BUG @wangfakang
- 修复 SDS 重连时可能存在并发冲突的 BUG @nejisama
- 路由 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
- 修复开启 TLS 加密场景下,XProtocol 协议在有多个协议的场景下判断协议错误的 BUG @nejisama
- 修复 AccessLog 中前缀匹配类型的变量不生效的 BUG @dengqian
- 修复 Listener 配置解析处理不正确的 BUG @nejisama
- 修复 Router/Cluster 在文件持久化配置类型中,Name 字段包含路径分隔符时会保存失败的 BUG @nejisama
- 支持 Istio 1.5.X @wangfakang @trainyao @champly
- go-control-plane 升级到 0.9.4 版本
- xDS 支持 ACK,新增 xDS 的 Metrics
- 支持 Istio sourceLabels 过滤功能
- 支持 pilot-agent 的探测接口
- 支持更多的启动参数,适配 Istio agent 启动场景
- gzip、strict-dns、original-dst 支持 xDS 更新
- 移除 Xproxy 逻辑
- Maglev 负载均衡算法支持 @trainyao
- 新增连接池实现,用于支持消息类请求 @cch123
- 新增 TLS 连接切换的 Metrics @nejisama
- 新增 HTTP StatusCode 的 Metrics @dengqian
- 新增 Metrics Admin API 输出 @dengqian
- proxy 新增查询当前请求数的接口 @zonghaishang
- 支持 HostRewrite Header @liangyuanpeng
- 升级 tars 依赖,修复在高版本 Golang 下的编译问题 @wangfakang
- xDS 配置解析升级适配 Istio 1.5.x @wangfakang
- 优化 proxy 的日志输出 @wenxuwan
- DNS Cache 默认时间修改为 15s @wangfakang
- HTTP 参数路由匹配优化 @wangfakang
- 升级 fasthttp 库 @wangfakang
- 优化 Dubbo 请求转发编码 @zonghaishang
- 支持 HTTP 的请求最大 body 可配置 @wangfakang
- 修复 Dubbo Decode 无法解析 attachment 的 bug @champly
- 修复 HTTP2 连接建立之前就可能创建 stream 的 bug @dunjut
- 修复处理 HTTP2 处理 Trailer 空指针异常 @taoyuanyuan
- 修复 HTTP 请求头默认不标准化处理的 bug @nejisama
- 修复 HTTP 请求处理时连接断开导致的 panic 异常 @wangfakang
- 修复 dubbo registry 的读写锁拷贝问题 @champly
- 支持 Strict DNS Cluster @dengqian
- 支持 GZip 处理的 Stream Filter @wangfakang
- Dubbo 服务发现完成 Beta 版本 @cch123
- 支持单机故障隔离的 Stream Filter @NeGnail
- 集成 Sentinel 限流能力 @ansiz
- 优化 EDF LB 的实现,使用 EDF 重新实现 WRR LB @CodingSinger
- 配置获取 ADMIN API 优化,新增 Features 和环境变量相关 ADMIN API @nejisama
- 更新 Host 时触发健康检查的更新从异步模式修改为同步模式 @nejisama
- 更新了 Dubbo 库,优化了 Dubbo Decode 的性能 @zonghaishang
- 优化 Metrics 在 Prometheus 中的输出,使用正则过滤非法的 Key @nejisama
- 优化 MOSN 的返回状态码 @wangfakang
- 修复健康检查注册回调函数时的并发冲突问题 @nejisama
- 修复配置持久化函数没有正确处理空配置的错误 @nejisama
- 修复 ClusterName/RouterName 过长时,以文件形式 DUMP 会失败的问题 @nejisama
- 修复获取 XProtocol 协议时,无法正确获取协议的问题 @wangfakang
- 修复创建 StreamFilter 时,获取的 context 错误的问题 @wangfakang
- 支持 Skywalking @arugal
- Stream Filter 新增了一个 Receive Filter 执行的阶段,可在 MOSN 路由选择完 Host 以后,再次执行 Receive Filter @wangfakang
- HTTP2 支持流式 @peacocktrain @taoyuanyuan
- FeatureGate 新增接口 KnownFeatures,可输出当前 FeatureGate 状态 @nejisama
- 提供一种协议透明的方式获取请求资源(PATH、URI、ARG),对于资源的定义由各个协议自身定义 @wangfakang
- 新增负载均衡算法
- 支持 ActiveRequest LB @CodingSinger
- 支持 WRR LB @nejisama
- XProtocol 协议引擎优化 @neverhook
- 修改 XProtocol 心跳响应接口,支持协议的心跳响应可返回更多的信息
- 优化 connpool 的心跳触发,只有实现了心跳的协议才会发心跳
- Dubbo 库依赖版本从 v1.5.0-rc1 更新到 v1.5.0 @cch123
- API 调整,HostInfo 新增健康检查相关的接口 @wangfakang
- 熔断功能实现优化 @wangfakang
- 负责均衡选择逻辑简化,同样地址的 Host 复用相同的健康检查标记 @nejisama @cch123
- 优化 HTTP 建连逻辑,提升 HTTP 建立性能 @wangfakang
- 日志轮转逻辑从写日志触发,调整为定时触发 @nejisama
- typo 调整 @xujianhai666 @candyleer
- 修复 xDS 解析故障注入配置的错误 @champly
- 修复 MOSN HTTP HEAD 方法导致的请求 Hold 问题 @wangfakang
- 修复 XProtocol 引擎对于 StatusCode 映射缺失的问题 @neverhook
- 修复 DirectReponse 触发重试的 BUG @taoyuanyuan
- 支持 Listener Filter 的扩展,透明劫持能力基于 Listener Filter 实现 @wangfakang
- 变量机制新增 Set 方法 @neverhook
- 新增 SDS Client 失败时自动重试和异常处理 @pxzero
- 完善 TraceLog,支持注入 context@taoyuanyuan
- 新增 FeatureGate
auto_config
,当开启该 Feature 以后动态更新的配置会保存到启动配置中 @nejisama
- 重构 XProtocol Engine,并且重新实现了 SofaRPC 协议 @neverhook
- 移除了 SofaRpc Healthcheck filter,改为 xprotocol 内建的 heartbeat 实现
- 移除了 SofaRpc 协议原本的协议转换 (protocol conv) 支持,新增了基于 stream filter 的的协议转换扩展实现能力
- xprotocol 新增 idle free 和 keepalive
- 协议解析优化
- 修改 HTTP2 协议的 Encode 方法参数 @taoyuanyuan
- 精简了 LDS 接口参数 @nejisama
- 修改了路由配置模型,废弃了
connection_manager
@nejisama
- 优化 Upstream 动态解析域名机制 @wangfakang
- 优化 TLS 封装,新增了错误日志,修改了兼容模式下的超时时间 @nejisama
- 优化超时时间设置,使用变量机制设置超时时间 @neverhook
- Dubbo 解析库依赖升级到 1.5.0 @cch123
- 引用路径迁移脚本新增 OS 自适应 @taomaree
- 修复 HTTP2 协议转发时丢失 query string 的问题 @champly
- 支持多进程插件模式
- 启动参数支持 service-meta 参数
- 支持 abstract uds 模式挂载 sds socket
- 分离部分 mosn 基础库代码到 mosn.io/pkg 包(github.com/mosn/pkg)
- 分离部分 mosn 接口定义到 mosn.io/api 包(github.com/mosn/api)
- 日志基础模块分离到 mosn.io/pkg,mosn 的日志实现优化
- 优化 FeatureGate
- 新增处理获取 SDS 配置失败时的处理
- CDS 动态删除 Cluster 时,会同步停止对应 Cluster 的健康检查
- sds 触发证书更新时的回调函数新增证书配置作为参数
- 修复在 SOFARPC Oneway 请求失败时,导致的内存泄漏问题
- 修复在收到非标准的 HTTP 响应时,返回 502 错误的问题
- 修复 DUMP 配置时可能存在的并发冲突
- 修复 TraceLog 统计的 Request 和 Response Size 错误问题
- 修复因为并发写连接导致写超时失效的问题
- 修复 serialize 序列化的 bug
- 修复连接读取时内存复用保留 buffer 过大导致内存占用过高的问题
- 优化 XProtocol 中 Dubbo 相关实现
- 支持变量机制,accesslog 修改为使用变量机制获取信息
- 重构了包引用路径从
sofastack.io/sofa-mosn
变更为mosn.io/mosn
- 修复 Write 连接时没有对 buf 判空的 bug
- 修复 HTTP2 Stream 计数错误的 bug
- 修复在 proxy 协程 panic 时导致的内存泄漏
- 修复在特定的场景下,读写协程卡死导致的内存泄漏
- 修复 xDS 并发处理的 bug
- make image 的产出镜像修改,修改后作为 MOSN 的示例
- 修正 SOFA RPC 的 TraceLog 中获取 CallerAPP 的字段
- 新增 Metrics: MOSN 处理失败的请求数
- 通过 MMAP 提升 Metrics 共享内存的写性能
- 减少默认协程池大小,优化内存占用
- 优化日志输出
- 修复 MOSN 启动时如果存在日志文件,没有被正常轮转的 Bug
- 新增接口:支持连接返回当前是否可用的状态
- 管理 API 新增默认的帮助页面
- 减少连接和请求默认的内存分配
- 优化 ConfigStore 中的机器列表信息存储
- Metrics 优化
- SOFA RPC 的心跳请求不再记录到 Metrics 中
- 优化共享内存方式的 Metrics 使用
- 优化配置文件读取,会忽略空文件与非 json 文件
- 优化 xDS 客户端
- xDS 客户端修改为完全异步启动,不阻塞启动流程
- 优化 xDS 客户端断连重试逻辑
- 修复在 TLS Inspector 模式下热升级连接迁移会失败的 Bug
- 修复日志轮转配置无法正确更新的 Bug
- 修复日志在 Fatal 级别没有正确输出日志时间的 Bug
- 修复在特定的场景下,连接的读循环会导致死循环的 Bug
- 修复 HTTP 连接计数统计错误的 Bug
- 修复关闭连接时,无法正确关闭对应 channel 的 Bug
- 修复处理 BoltV2 协议的响应时,没有正确处理 buffer 的 Bug
- 修复读写持久化配置时的并发冲突
- 修复收到响应和触发超时的并发冲突
- 新增 FeatureGates 支持
- 新增 Metrics: 请求在 MOSN 中处理耗时
- 支持运行时重启已经关闭的监听套接字
- 使用的 Go 版本升级到 1.12.7
- 修改 xDS 客户端启动时机,现在会先于 MOSN 的服务启动
- 修复 RPC 请求写错误时,没有正确触发请求重置的 Bug
- 修复没有收到上游响应时产生的内存泄漏 Bug
- 修复在 HTTP 请求执行重试时,部分请求参数会丢失的 Bug
- 修复在 DNS 解析失败时,可能导致 panic 的 Bug
- 修复在 TLS Inspector 模式下连接建立时不会超时的 Bug
- prometheus 输出格式不再支持 gzip
- 配置新增空闲连接超时
connection_idle_timeout
字段,默认值 90s。当触发空闲连接超时后,MOSN 会主动关闭连接 - 错误日志新增 Alert 接口,输出带错误码格式的错误日志
- 支持 SDS 的方式获取 TLS 证书
- 重构了 upstream 模块
- 重构了内部 Cluster 实现结构
- 更新 Host 的实现从差量更新修改为全量更新,加快更新速度
- 重构了快照(Snapshot)的实现
- 优化了部分内存占用情况
- 修改了部分接口函数的参数
- 重构了 Tracing 的实现方式,支持更多的扩展
- 优化了连接的 Metrics 统计
- 优化了 Metrics 在 prometheus 模式下的输出格式
- 优化了 IO 写协程,减少内存占用
- 修复了并发创建 Logger 时可能存在的并发冲突
- 修复了收到响应和触发超时会导致 panic 的 Bug
- 修复了 HTTP 处理连接重置时的并发 Bug
- 修复了在日志文件被删除后,无法正确轮转的 Bug
- 修复了 HTTP2 处理 goaway 时的并发 Bug
- 配置支持 xDS 模式和静态配置同时存在的混合模式
- 支持管理 API 可扩展注册新的 API
- 支持动态更新 StreamFilter 配置以后,可以对所有的连接生效
- 重构了包引用路径
- 从
github.com/alipay/sofa-mosn
变更为sofastack.io/sofa-mosn
- 从
- 优化了错误日志的输出结构
- 完善了配置文件 json 解析的实现
- 优化了针对使用大 buffer 场景的内存复用
- 优化首次启动时候,对 Metrics 使用共享内存的处理
- 修复了 ProxyLogger 的日志级别无法被动态更新的 Bug
- 修复了连接的读写循环可能导致 panic 的 Bug
- 修复了同时删除多个 Cluster 时不能正确生效的 Bug
- 修复了 Metrics 中活跃请求数在并发情况下计数错误的 Bug
- 修复了 HTTP 连接在重置和收到响应并发时触发 panic 的 Bug
- 支持新的配置文件模型
- 集群配置支持被设置为单独的目录
- 路由配置支持被设置为单独的目录
- 支持多证书配置
- 兼容旧的配置文件模型
- 新增展示基本信息的 Metrics
- 版本号
- 使用的 Go 版本
- MOSN 运行时状态
- 监听的地址
- 支持 Metrics 的过滤
- 支持注册 MOSN 运行状态变化时的回调函数
- 支持 Request oneway
- 支持错误日志级别的批量修改、支持批量关闭 Access 日志
- 重构了 Proxy 线程模型
- 每个请求使用一个单独的 Goroutine 进行处理
- 使用状态机代替回调函数,请求处理流程修改为串行
- 重构了连接池选择模型,尽量避免选择到异常的后端
- 优化了 Metrics 输出性能
- 优化了错误日志输出
- 优化了 SOFA RPC 协议解析性能
- 扩展实现 context,在兼容标准 context 的情况下,降低嵌套层数,优化性能
- 修复了错误解析部分 json 配置的 Bug
- 修复了 HTTP 在特定场景下会触发 Goroutine 泄漏的 Bug
- 修复了 IO 写并发场景下可能导致 panic 的 Bug
- 修复了 HOST 信息没有被去重的 Bug
- Metrics 新增 prometheus 模式输出
- Metrics 支持 exclusion 配置
- 支持日志的动态开启、关闭,支持错误日志级别的动态调整
- HTTP 协议支持 100 continue
- 支持 Tars 协议
- 支持 SOFARPC 协议的连接在空闲时发送心跳
- 支持根据 SOFARPC 的子协议创建连接
- 支持全新的平滑升级方式
- 主动健康检查支持可扩展的实现,默认为 tcp dial
- 内存复用模块支持可扩展
- 负载均衡实现支持可扩展
- 配置文件解析方式支持可扩展,默认为 json 文件解析
- 重构了 stream 包结构,修改部分 API 接口
- 日志模块修改为异步写日志
- 重构了 xDS 配置转换模块
- 重构了路由链的实现
- 将部分通用功能函数移动到 utils 包目录下
- 路由匹配方式优化,支持特定场景下通过 KV 匹配
- 请求信息中记录的请求状态码统一转换为 HTTP 状态码作为标准
- 优化了 Tracer 的实现,提升 Tracer 记录的性能
- 优化了配置文件持久化的性能
- 优化了动态更新后端机器列表的性能
- 修复了 workpool 的死锁 Bug
- 修复了 HTTP2 错误处理 trailer 的 Bug
- 修复了 buffer 复用的并发问题
- 通过 HTTP2 支持 gRPC
- 支持 HTTP/HTTP2 协议自动识别
- 支持 SOFA RPC 协议的 Tracer
- 新增更多的路由功能
- 支持重试策略的配置
- 支持直接响应的策略配置
- 支持在 HTTP Header 中添加、删除自定义的字段
- 支持重写 HTTP 协议的 Host 和 URI
- 支持可扩展的路由实现
- 支持 QPS 限流和基于速率的限流
- 支持故障注入
- 支持 Mixer
- 支持获取 MOSN 运行时配置
- 重构了协议框架,支持 SOFA RPC 子协议的扩展
- 优化了 HTTP 协议的支持,性能提升约 30%
- 优化了 HTTP2 协议的支持,性能提升约 100%
- 优化了 TCP Proxy 的实现
- 修复了平滑升级的 Bug
- 修复了 HTTP/HTTP2 协议处理的 Bug
- 修复了一些潜在的内存泄漏的 Bug
- 支持 Metrics 的平滑迁移
- 支持 TLS 的平滑迁移
- 优化了 SOFARPC 协议解析的 CPU 和内存占用情况
- 支持单机级别的 TLS 开关
- 通过 XProtocol 协议支持 Dubbo 协议
- 支持带权重的路由匹配规则
- 新增 xDS 客户端实现
- 支持 LDS
- 支持 CDS
- 支持四层 Filter 可扩展
- 支持 TLS 配置可扩展
- 支持基于原生 epoll 的 IO 处理
- 加强协议解析的可扩展能力
- 新增 XProtocol,可通过 XProtocol 扩展协议实现
- 实现内存复用框架,降低内存分配开销
- 实现了一个可编程、可扩展的网络扩展框架 MOSN
- 实现了协议框架
- 支持 SOFARPC 协议
- 支持 HTTP 协议
- 支持 HTTP2 协议
- 支持基于 Stream Filters 的可扩展模式
- 支持后端集群管理与负载均衡
- 支持简单的路由匹配规则
- 支持平滑重启与平滑升级